计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式。此时就需要我们去拼接或者计算来提供应用程序所需要的数据。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序中重新格式化。
1.拼接字段
拼接(concatenate): 将值联结到一起构成单个值。
解决办法是把两个列拼接起来。在SOL中的SELECT语句中,可使用一个特殊的操作符来拼接两个列。此操作符可用加号(+)或两个竖杠(||)表示,这有赖于具体的DBMS (SQL Server和 Sybase使用 +。DB2、Oracle、PostgreSQL和Sybase使用 ||)。
注意:SQL不支持使用+或者 || 的拼接。它使用CONCAT()函数把项表拼接起来。使用CONCAT(),上述例子的第一行如下∶
SELECT CONCAT(vend_name,’(’,vend_country,’)’)
MySQL确实支持 || ,但并不支持拼接。在MySQL中,|| 等同于操作符OR,而&&等同于操作符AND.
代码如下(示例):
/*拼接厂家名字带有国家*/
select vend_name ||'(' || vend_country || ')' from vendors;
select vend_name ||'(' || vend_country || ')' as vend_title from vendors;
结果:
注: AS vend_title 相当于起了别名,使得该列数据更有意义,以及方便引用该列。
2.执行计算字段
代码如下(示例):
/*筛选订单号是20008 的订单数量、价格、总价的信息*/
SELECT prod_id, quantity,item_price, quantity*item_price AS expanded_price FROM OrderItems WHERE order_num = 20008;
总结
本节相对比较简单一些,主要学习了拼接和计算两个模式,还有一个方便引用的别名,一般情况下都可以用关键词AS ,各个DBMS自己惯用用法,比如oracle 一般直接用空格来替代 AS.