标签:
为了说明如何使用计算字段,我们来举一个简单例子,创建由两列组成的标题。
Vendors
表包含供应商名和地址信息。假如要生成一个供应商报表,需要在格式化的名称(位置)中列出供应商的位置。
此报表需要一个值,而表中数据存储在两个列vend_name
和vend_country
中。此外,需要用括号将vend_country
括起来,这些东西都没有存储在数据库表中。这个返回供应商名称和地址的SELECT
语句很简单,但我们是如何创建这个组合值的呢?
拼接(concatenate)
将值联结到一起(将一个值附加到另一个值)构成单个值。
解决办法是把两个列拼接起来。在SQL中的SELECT
语句中,可使用一个特殊的操作符来拼接两个列。根据你所使用的DBMS,此操作符可用加号(+
)或两个竖杠(||
)表示。在MySQL和MariaDB中,必须使用特殊的函数。
说明:是
+
还是||
?
Access和SQL Server使用+
号。DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||
。详细请参阅具体的DBMS文档。
下面是使用加号的例子(多数DBMS使用这种语法):
输入▼
SELECT vend_name + ‘ (‘ + vend_country + ‘)‘ FROM Vendors ORDER BY vend_name;
说明:TRIM函数
大多数DBMS都支持RTRIM()
(正如刚才所见,它去掉字符串右边的空格)、LTRIM()
(去掉字符串左边的空格)以及TRIM()
(去掉字符串左右两边的空格)。
从前面的输出可以看到,SELECT
语句可以很好地拼接地址字段。但是,这个新计算列的名字是什么呢?实际上它没有名字,它只是一个值。如果仅在SQL查询工具中查看一下结果,这样没有什么不好。但是,一个未命名的列不能用于客户端应用中,因为客户端没有办法引用它。
为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值的替换名。别名用AS
关键字赋予。请看下面的SELECT
语句:
输入▼
SELECT RTRIM(vend_name) + ‘ (‘ + RTRIM(vend_country) + ‘)‘
AS vend_title
FROM Vendors
ORDER BY vend_name;
表7-1 SQL算术操作符
操 作 符 | 说 明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
提示:如何测试计算
SELECT
语句为测试、检验函数和计算提供了很好的方法。虽然SELECT
通常用于从表中检索数据,但是省略了FROM
子句后就是简单地访问和处理表达式,例如SELECT 3 * 2;
将返回6,SELECT Trim(‘ abc ‘);
将返回abc
,SELECT Now();
使用Now()
函数返回当前日期和时间。现在你明白了,可以根据需要使用SELECT
语句进行检验。
标签:
原文地址:http://www.cnblogs.com/qook/p/4897870.html