SQL必知必会——创建计算字段(七)

1、计算字段

存储在表中的数据都不是应用程序所需要的,我们需要直接从数据库中检索出转换,计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。与前面介绍的列不同,计算字段并不实际存在于数据库表中。

注意:
1、字段:基本上与列的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。
2、只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户端(如应用程序)来看,计算字段的数据与其他列的数据的返回方式相同。
3、在SQL语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。但一般来说,在数据库服务器上完成这些操作比在客户端上完成要快得多。

2、拼接字段

拼接:将值联结到一起(将一个值附加到另一个值)构成单个值。

SELECT vend_name + '(' + vend_country + ‘)’
FROM vendors
ORDER BY vend_name;
#使用加号的是Access和SQL Server
SELECT vend_name || '(' || vend_country || ‘)’
FROM vendors
ORDER BY vend_name;
#使用||的是DB2,Oracle,PostgreSQL,SQLite和Open Office Base
SELECT Concat(vend_name , '(' + vend_country , ‘)’)
FROM vendors
ORDER BY vend_name;
#需要使用特殊函数的是MySQL和MariaDb
SELECT RTRIM(vend_name) || '(' || RTRIM(vend_country) || ‘)’
FROM vendors
ORDER BY vend_name;
#大多数DBMS都支持RTRIM(),LTRIM(),TRIM()
SELECT RTRIM(vend_name) + '(' + RTRIM(vend_country) + ‘)’ AS  vend_title
FROM vendors
ORDER BY vend_name;
#别名(alias)是一个字段或值的替换名。

注意:
1、在很多DBMS中,AS关键字是可选的,不过最好使用它,这被视为一条最佳实践。
2、别名还有其他用途,常见的有包括在实际的表列名包含不合法的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它。
3、别名可以时一个单词,也可以时一个字符串,如果时一个字符串,应该放在引号里面,但是不建议这么做。
4、别名有时也称为导出列,不管怎么叫,他们所代表的时相同的东西。

3、执行算术计算

输入:

SELECT prod_id.quantity,item_price,quantity*price AS expanded_price
FROM OrderItems
WHERE order_num = 20008;

输出:
在这里插入图片描述

分析:
输出中显示的expanded_price列是一个计算字段,此计算为quantity*item_price。客户端应用现在可以使用 这个新计算列,就像使用其他列一样。

注意:
1、SELECT语句为测试,检验函数和计算提供了很好的方法。虽然SELECT通常用于从表中检索数据,但是省略了FROM子句后就是简单的访问和处理表达式,例如SELECT 3*2;将返回6;SELECT Trim(‘ abc ’ ),将返回abc;SELECT Now(),将返回当前日期和时间。所以,可以根据需求使用SELECT语句进行检验。

猜你喜欢

转载自blog.csdn.net/qq_28285403/article/details/91410316