————介绍什么是计算字段,如何创建计算字段,以及如何从应用程序中使用别名引用它们
1. 概念介绍
- 字段(field)
基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而字段这个术语通常在计算字段这种场合下使用
2. 拼接字段
2.1 拼接(concatenate)
将值联结在一起(将一个值附加到另一个值)构成单个值
说明
SQL Server使用”+”,多数DBMS使用”+”
SELECT vend_name + '(' + vend_country + ')' FROM Vendors ORDER BY vend_name;
/*output
Bear Emporium (USA )*/
DB2、Oracle、PostgreSQL和SQLite使用”||”
SELECT vend_name || '(' || vend_country || ')' FROM Vendors ORDER BY vend_name; /*output Bear Emporium (USA )*/
MySQL或MariaDB使用”,”
SELECT Concat(vend_name, ' (', vend_country, ')') FROM Vendors ORDER BY vend_name; /*用","代替"+"或"||"*/
2.2 TRIM函数
RTRIM:去掉字符串右侧的空格
- LTRIM:去掉字符串左侧的空格
TRIM:去掉字符串左右两侧的空格
SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' FROM Vendors ORDER BY Vend_name; /*output Bear Emporium (USA)*/ /*空格为引号内的空格*/
SELECT RTRIM(vend_name) || ' (' || RTRIM(vend_country) || ')' FROM Vendors ORDER BY Vend_name; /*output Bear Emporium (USA)*/ /*空格为引号内的空格*/
2.3 别名
有时成为导出列
使用”+”
SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' AS vend_title FROM Vendors ORDER BY Vend_name; /*output vend_title Bear Emporium (USA)*/ /*空格为引号内的空格*/
使用”||”
SELECT RTRIM(vend_name) || ' (' || RTRIM(vend_country) || ')' AS vend_title FROM Vendors ORDER BY Vend_name; /*output vend_title Bear Emporium (USA)*/ /*空格为引号内的空格*/
MySQL和MariaDB中使用”,”
SELECT Concat(RTRIM(vend_name), ' (' RTRIM(vend_country),')') AS vend_title FROM Vendors ORDER BY Vend_name; /*output vend_title Bear Emporium (USA)*/ /*空格为引号内的空格*/
2.4 执行算数计算
SELECT prod_id, quantity, item_price, quntity*item_price AS expanded_price FROM OderItems WHERE order_num = 20008;
SQL支持列出的基本算数运算操作符,此外,圆括号可用来区分优先级。
操作符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |