SQL (六)创建计算字段
程序员文章站
2022-07-14 10:01:43
...
计算字段
- 计算字段和列类似,经常互换使用,但是数据库中说列更准确,而计算字段是在SELECT语句内创建的。
- 只有服务器的数据库知道select语句中哪些列是表列,哪些是计算字段,客户端的应用程序不知道,他觉得都一样。
- 虽然客户端的应用程序可以完成所有的格式转换等工作,但是在服务器端完成要快得多。所以不要在客户端做。
拼接字段
示例1:as关键字赋予计算字段一个别名
mysql不能用+或者双竖杠||,要用concat函数
select concat(vend_name, '(', vend_country, ')')
as vend_title
from vendors
order by vend_name;
as vend_title指示SQL创建一个包含计算结果的名字为vend_title的计算字段。注意vend_title并不是一个列名哦
as后面的标识符叫做别名,alias。
不建议把别名设置为一个中间有空格的字符串,最好是单个单词。
可以看到,concat函数还帮助去掉了空格,如果用+或||,还需要自己用trim函数,或者rtrim,ltrim函数去掉左右两边的空格,右边的空格,左边的空格。
算术运算
示例
先显示订单号20008中的所有产品
select prod_id,
quantity,
item_price
from OrderItems
where order_num = 20008;
计算这个订单中每个产品的总价:单价乘以数量
select prod_id,
quantity,
item_price,
quantity*item_price as expanded_price
from OrderItems
where order_num = 20008;
expanded_price是一个计算字段,由as指定别名,客户端的应用就可以用这个新的计算列了。
SQL算术操作符
示例:用select语句进行算术计算
select 4 * 5;
去掉右边的空格
select rtrim('abd ');
去掉左边的空格
select ltrim(' abd d');
去掉两边的空格
select trim(' abd d ');
返回当前时间
select now();
select 10 / 4;
总结
- as关键字用于给新创建的计算字段起别名
- 要在服务器端完成计算再通过网络传给客户端应用程序
- concat函数实现把两列甚至更多列拼接为一个有格式的字段
- 可以用不带from子句的select语句完成计算