计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式。需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出后在客户机应用程序中重新格式化。
计算字段并不实际存在于数据库表中,而是运行在SELECT
语句内创建的
- 字段(field):基本上以列的意思相同,经常互换使用。只有数据库知道
SELECT
语句中哪些列是实际的表列,哪些列是计算字段。
拼接字段
例:vendors表包含供应商名和位置信息。假如要生成一个供应商报表,需要按照name(location)的格式列出
- 拼接(concatenate):将值联结到一起构成单个值。多数DBMS使用
+
或||
来实现拼接,但MySQL使用Concat()
函数。
SELECT Concat(vend_name, ' (', vend_country, ')')
FROM vendors
ORDER BY vend_name;
- 删除数据右侧多余空格,使用
RTrim()
函数:
SELECT Concat(RTrim(vend_name), ' (', vend_country, ')')
FROM vendors
ORDER BY vend_name;
同理,删除左边空格LTrim()
,两边空格Trim()
。
使用别名(alias)
SELECT Concat(RTrim(vend_name), ' (', vend_country, ')') AS vend_title
FROM vendors
ORDER BY vend_name;
执行算数计算
对检索出的数据进行检索计算。
例:orders表包含收到的所有订单,orderitems表包含每个订单中的各项物品,item_price列包含单价。汇总物品的价格(单价乘以订购数量):
SELECT prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
FROM orderitems
WHERE order_num = 20005;
网友评论