SQL中的算术运算和函数
一、计算字段
1、计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式,下面举几个例子。
(1).需要显示公司名,同时还需要显示公司的地址,但这两个信息存储在不同的表列中。
(2).城市和邮政编码存储在不同的列中(应该这样),但邮件标签打印程序需要把它们作为一个有恰当格式的字段检索出来。
(3).列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。
(4).物品订单表存储物品的价格和数量,不存储每个物品的总价格(用价格乘以数量即可)。但为打印发票,需要物品的总价格。
(5).需要根据表数据进行诸如总数、平均数的计算。
在上述每个例子中,存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索 出数据,然后再在客户端应用程序中重新格式化。 这就是计算字段可以派上用场的地方了。计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创 建的。
字段(field) 基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。 需要特别注意,只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户端(如应用程序)来看,计算字段的数据与其 他列的数据的返回方式相同。
提示:客户端与服务器的格式 在SQL语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。但一般来说,在数据库服务器上完成这些操作比在客户 端中完成要快得多。
2、拼接字段
例:Vendors表包含供应商名和地址信息。假如要生成一个供应商报表,需要在格式化的名称(位置)中列出供应商的位置。 此报表需要一个值,而表中数据存储在两个列vend_name和vend_country中。此外,需要用括号将vend_country括起来,这些东西都没有存储在 数据库表中。解决办法是把两个列拼接起来。在SQL中的SELECT语句中,可使用一个特殊的操作符来拼接两个列。根据你所使用的DBMS,此操作符可用加 号(+)或两个竖杠(||)表示。在MySQL和MariaDB中,必须使用特殊的函数。
说明:是+还是||? Access和SQL Server使用+号。DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||
(1)操作符+
select rtrim(vend_name) + ' (' + rtrim(vend_country) + ')' as vend_title from vendors order by vend_name;
<1>上面的SELECT语句拼接以下元素:
存储在vend_name列中的名字;
包含一个空格和一个左圆括号的字符串;
存储在vend_country列中的国家;
推荐阅读
-
比较与使用:fftshift和ifftshift函数在matlab中的不同
-
移位操作函数的应用:circshift、fftshift和ifftshift在matlab中的用法
-
SQL运算符分类 - 算术运算符、比较运算符和逻辑运算符
-
除法运算在SQL Server中的用法 and 如何在SQL Server中执行除法运算
-
SQL除法运算:处理数据库中的除法运算
-
SQL中#和$之间的差异
-
总结SQL Server调优系列基础篇中的子查询运算
-
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
-
讲解数据库关系代数中的除法运算及其在SQL语句中的实现
-
使用代码表示SQL中的除法运算