6.计算字段 ---SQL
提示:客户端与服务器的格式
在SQL语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。但一般来说,在数据库服务器上完成这些操作比在客户
端中完成要快得多。
一、拼接字段
拼接(concatenate)
将值联结到一起(将一个值附加到另一个值)构成单个值。
解决办法是把两个列拼接起来。在SQL中的SELECT语句中,可使用一个特殊的操作符来拼接两个列。根据你所使用的DBMS,此操作符可用加
号(+)或两个竖杠(||)表示。在MySQL和MariaDB中,必须使用特殊的函数。
说明:是+还是||?
Access和SQL Server使用+号。DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||
- SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
- FROM Vendors
- ORDER BY vend_name;
- 输出▼
- -----------------------------------------------------------
- Bear Emporium (USA)
- Bears R Us (USA)
- Doll House Inc. (USA)
- Fun and Games (England)
- Furball Inc. (USA)
- Jouets et ours (France)
分析▼
RTRIM()函数去掉值右边的所有空格。通过使用RTRIM(),各个列都进行了整理。
说明:TRIM函数
大多数DBMS都支持RTRIM()(正如刚才所见,它去掉字符串右边的空格)、LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串
左右两边的空格)。
二、使用别名
别名(alias)是一个字段或值的替换名。别名用A S关键字赋予
- SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
- AS vend_title
- FROM Vendors
- ORDER BY vend_name;
- 输出▼
- vend_title
- -----------------------------------------------------------
- Bear Emporium (USA)
- Bears R Us (USA)
- Doll House Inc. (USA)
- Fun and Games (England)
- Furball Inc. (USA)
- Jouets et ours (France)
分析▼
SELECT语句本身与以前使用的相同,只不过这里的计算字段之后跟了文本A S vend_title。它指示SQL创建一个包含指定计算结果的名
为vend_title的计算字段。从输出可以看到,结果与以前的相同,但现在列名为vend_title,任何客户端应用都可以按名称引用这个列,就像它
是一个实际的表列一样。
说明:AS通常可选
在很多DBMS中,AS关键字是可选的,不过最好使用它,这被视为一条最佳实践。
提示:别名的其他用途
别名还有其他用途。常见的用途包括在实际的表列名包含不合法的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它。
警告:别名
别名既可以是一个单词也可以是一个字符串。如果是后者,字符串应该括在引号中。虽然这种做法是合法的,但不建议这么去做。多单词的
名字可读性高,不过会给客户端应用带来各种问题。因此,别名最常见的使用是将多个单词的列名重命名为一个单词的名字。
说明:导出列
别名有时也称为导出列(derived column),不管怎么叫,它们所代表的是相同的东西。
三、执行算术计算
- SELECT prod_id,
- quantity,
- item_price,
- quantity*item_price AS expanded_price
- FROM OrderItems
- WHERE order_num = 20008;
- 输出▼
- prod_id quantity item_price expanded_price
- ---------- ----------- ------------ -----------------
- RGAN01 5 4.9900 24.9500
- BR03 5 11.9900 59.9500
- BNBG01 10 3.4900 34.9000
- BNBG02 10 3.4900 34.9000
- BNBG03 10 3.4900 34.9000
分析▼
输出中显示的expanded_price列是一个计算字段,此计算为quantity*item_price。客户端应用现在可以使用这个新计算列,就像使用其他列一
样。
SQL支持表7-1中列出的基本算术操作符。此外,圆括号可用来区分优先顺序。
四、SQL算术操作符
6.计算字段 ---SQL的更多相关文章
- 读书笔记--SQL必知必会07--创建计算字段
7.1 计算字段 字段(field),基本与列(column)含义相同. 利用计算字段可以直接从数据库中检索出转换.计算或格式化过的数据. 计算字段不实际存在于数据库表中,是运行时在SELECT语句内 ...
- (转)SQL Server 2005 中的计算字段
在实际工作上遇到的问题: 在订单表中有某项商品是将“订购数量(Quantity)”乘以“单件价格(UnitCost)”等于该项商品的总价(Subtotal). 在数据表中有的列(以下皆改叫为“字段”) ...
- SQL学习之计算字段的用法与解析
一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同时显示公司名和公司地址,但这两个信息存 ...
- SQL 必知必会·笔记<5>创建计算字段
字段(field) 基本上与列(column)的意思相同,经常互换使用,不过数据库列一 般称为列,而术语字段通常与计算字段一起使用. 拼接(concatenate) 将值联结到一起(将一个值附加到另一 ...
- SQL必知必会 -------- 通配符、计算字段、函数
1.LIKE操作符 1.1百分号(%)通配符 SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%' 此例子使用了搜索 ...
- 1.3(SQL学习笔记)计算字段及函数
一.计算字段 1.1拼接字段 一般情况下返回的字段是指定列的属性名.如果有时我们对返回格式有特殊要求. 例如,我们需要将显示商品名,即商品价格,同时商品名后面的价格放在括号内. prod_name(p ...
- sql server 计算属性,计算字段的用法与解析
SQL学习之计算字段的用法与解析 一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同 ...
- sql的一些知识_计算字段
创建计算字段 拼接字段 mysql中 使用concat拼接字段 得到的info可以被客户端使用 算术计算 对检索的数据进行运算并as为新的列名 ) ORDER BY weight
- SQL语句之-计算字段/分组
五.计算字段 1.拼接字段 MySQL:使用函数concat SqlServer:使用加号+ oracle:使用|| SELECT CONCAT(vend_name,'(',vend_country, ...
随机推荐
- 2017 google IO大会——5.17
大家好! 每年一度的全球互联网及新型技术的盛会 Google IO,今年的大会日期和地址已经公布了:大会将在5月17至19日在谷歌公司总部边上的会场,美国加州 Mountain View的 Shore ...
- css设置文件编码
在外部css文件的顶部,写入下面代码: @charset "UTF-8";
- jenkins maven tomcat做持续集成
maven 采用 maven 3.0以上的版本.tomcat 采用 tomcat 7.0 以上的版本 1. tomcat 配置用户账号和权限 tomcat-users.xml <role rol ...
- Zabbix数据库清理历史数据
Zabbix清理历史数据 Zabbix是个很好的监控软件,随着公司监控项目越来越多,数据越来越多,zabbix负载重,可能造成系统性能下降. Zabbix里面最大的表就是历史记录表,history,h ...
- eclipse如何在不联网的情况下引入dtd约束文件
1. 获取dtd文件,解压 F:\Java配置文件\Mybatis\mybatis-3.3.0\mybatis-3.3.0.jar\org\apache\ibatis\builder\xml\ 路径下 ...
- c# json 排版
public static string PraseToJson(string json) { try { JsonSerializer s = new JsonSerializer(); JsonR ...
- hdu-4417 Super Mario(树状数组 + 划分树)
题目链接: Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 示例的libevent的程序
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:auxten 链接:http://zhuanlan.zhihu.com/auxten/20315482 来源:知乎 /* ...
- Vijos1790:拓扑编号
描述 H国有n个城市,城市与城市之间有m条单向道路,满足任何城市不能通过某条路径回到自己. 现在国王想给城市重新编号,令第i个城市的新的编号为a[i],满足所有城市的新的编号都互不相同,并且编号为[1 ...
- reservoir sampling / random shuffle
randomly choose a sample of k items from a list S containing n elements, the algorithm may be online ...