在数据库存储的数据,一般不是应用程序所需要的格式,比如这几个例子:
- 需要显示公司名,还要显示公司地址,但是这两个信息在表格中是 2 个列。
- 列数据是大小写混合的,但是应用程序需要把所有数据按大写表示出来。
- 订单表示只有订单商品的数量和单价,应用程序需要商品的总价格。
- 需要根据表的数据进行总数、平均数的计算。
所以计算字段是运行在 select 语句中创建的,并不实际存在于数据库中。
(注:虽然这些计算在客户端也能完成,但是如果放在数据库服务器上做,往往要快得多)
拼接字段
有些 DBMS 使用 +
,有些使用 ||
来拼接。
select VEND_NAME || '(' || VEND_COUNTRY || ')' from VENDORS order by VEND_NAME;
如果取出来的字段由于数据类型的原因,有些空格的话,可以使用 rtrim
函数处理一下,rtrim
函数表示去掉右边(结尾)的所有空格 。
select rtrim(VEND_NAME) || '(' || rtrim(VEND_COUNTRY) || ')'
from VENDORS
order by VEND_NAME;
使用别名
这样拼接出来的列的列名是比较乱的,所以我们需要使用 as
来重新定义一个名字,这样方便后续获取这列的数据。
select rtrim(VEND_NAME) || '(' || rtrim(VEND_COUNTRY) || ')' as vent_mixin_value
from VENDORS
order by VEND_NAME;
执行算术计算
SQL 语句支持 +
、-
、*
、/
这些算术操作符,同样可以使用圆括号来确定优先级。
select PROD_ID, QUANTITY, ITEM_PRICE, (ITEM_PRICE * QUANTITY) as total_price
from ORDERITEMS
where ORDER_NUM = 20008;