-
SQL Server 2008教程之计算字段
第一节 计算字段
Ø 计算字段是数据库系统提供的对数据进行计算、转换或者格式化的功能,由于是在数据库系统内部进行的这些工作,而且数据库系统都这些工作进行了优化,所以其处理效率比在宿主语言中通过编写代码的方式进行处理要高效的多。
1、 常量字段
Ø 如:【select '杭州友佳'AS 公司名称,rownum 编号,zx01,zx02 from zx_file】中的“杭州友佳”这一列被称为“常量字段”(也称为“常量值”),它们完全可以被看成一个值确定的字段,其中的“公司名称”则是常量字段的别名。
2、 字段间计算
Ø 如:【SELECT FNumber,FName,FAge * FSalary FROM T_Employee】中同样,
这里的FAge * FSalary并不是一个实际的存在的列,但是在查询出来的数据中它们看起来是一个实际存在的字段,它们完全可以被看成一个普通字段,同样也可以为其指定别名。
Ø 前面提到常量字段完全可以当作普通字段来看待,那么普通字段也可以和常量字段进行计算,甚至常量字段之间也可以进行计算。计算字段也可以在WHERE语句等子句或者UPDATE、DELETE中使用。
3、 数据处理函数
Ø 像普通编程语言一样,SQL也支持使用函数处理数据,常用的函数处理有:比如进行数值处理的数学函数、进行日期处理的日期函数、进行字符串处理的字符串函数,聚合函数等。
Ø 我们来演示几个函数使用的典型场景。主流数据库系统都提供了计算字符串长度的函数,在MYSQL、Oracle、DB2中这个函数名称为LENGTH,而在MSSQLServer中这个函数的名称则为LEN。这个函数接受一个字符串类型的字段值做为参数,返回值为这个字符串的长度。如:
【select rownum 编号,zx01,zx02,Length(zx02) from zx_file】计算名字的长度
Ø 主流系统都提供了取得字符串的子串的函数,在MYSQL、MSSQLServer中这个函数名称为SUBSTRING,而在Oracle、DB2这个函数名称为SUBSTR。这个函数接受三个参数,第一个参数为要取的主字符串,第二个参数为字串的起始位置(从1开始计数),第三个参数为字串的长度。如:
【select substr(zxdate,1,10) AS 日期,zxdate from zx_file】取出zxdate字段日期的前十位。
Ø 多个函数还可以嵌套使用。主流系统都提供了计算正弦函数值的函数SIN和计算绝对值的函数ABS,它们都接受一个数值类型的参数。
4、 字符串的拼接
Ø SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外。在不同的数据库系统下的字符串拼接是有很大差异的,因此这里我们将讲解主流数据库下的字符串拼接的差异。需要注意的是,在Java、C#等编程语言中字符串是用半角的双引号来包围的,但是在有的数据库系统的SQL语法中双引号有其他的含义(比如列的别名),而所有的数据库系统都支持用单引号包围的形式定义的字符串,所以建议读者使用以单引号包围的形式定义的字符串,而且本书也将使用这种方式。
5、 计算字段的其他用途
Ø 计算字段是数据库系统提供的对数据进行计算、转换或者格式化的功能,由于是在数据库系统内部进行的这些工作,而且数据库系统都这些工作进行了优化,所以其处理效率比在宿主语言中通过编写代码的方式进行处理要高效的多。
1、 常量字段
Ø 如:【select '杭州友佳'AS 公司名称,rownum 编号,zx01,zx02 from zx_file】中的“杭州友佳”这一列被称为“常量字段”(也称为“常量值”),它们完全可以被看成一个值确定的字段,其中的“公司名称”则是常量字段的别名。
2、 字段间计算
Ø 如:【SELECT FNumber,FName,FAge * FSalary FROM T_Employee】中同样,
这里的FAge * FSalary并不是一个实际的存在的列,但是在查询出来的数据中它们看起来是一个实际存在的字段,它们完全可以被看成一个普通字段,同样也可以为其指定别名。
Ø 前面提到常量字段完全可以当作普通字段来看待,那么普通字段也可以和常量字段进行计算,甚至常量字段之间也可以进行计算。计算字段也可以在WHERE语句等子句或者UPDATE、DELETE中使用。
3、 数据处理函数
Ø 像普通编程语言一样,SQL也支持使用函数处理数据,常用的函数处理有:比如进行数值处理的数学函数、进行日期处理的日期函数、进行字符串处理的字符串函数,聚合函数等。
Ø 我们来演示几个函数使用的典型场景。主流数据库系统都提供了计算字符串长度的函数,在MYSQL、Oracle、DB2中这个函数名称为LENGTH,而在MSSQLServer中这个函数的名称则为LEN。这个函数接受一个字符串类型的字段值做为参数,返回值为这个字符串的长度。如:
【select rownum 编号,zx01,zx02,Length(zx02) from zx_file】计算名字的长度
Ø 主流系统都提供了取得字符串的子串的函数,在MYSQL、MSSQLServer中这个函数名称为SUBSTRING,而在Oracle、DB2这个函数名称为SUBSTR。这个函数接受三个参数,第一个参数为要取的主字符串,第二个参数为字串的起始位置(从1开始计数),第三个参数为字串的长度。如:
【select substr(zxdate,1,10) AS 日期,zxdate from zx_file】取出zxdate字段日期的前十位。
Ø 多个函数还可以嵌套使用。主流系统都提供了计算正弦函数值的函数SIN和计算绝对值的函数ABS,它们都接受一个数值类型的参数。
4、 字符串的拼接
Ø SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外。在不同的数据库系统下的字符串拼接是有很大差异的,因此这里我们将讲解主流数据库下的字符串拼接的差异。需要注意的是,在Java、C#等编程语言中字符串是用半角的双引号来包围的,但是在有的数据库系统的SQL语法中双引号有其他的含义(比如列的别名),而所有的数据库系统都支持用单引号包围的形式定义的字符串,所以建议读者使用以单引号包围的形式定义的字符串,而且本书也将使用这种方式。
5、 计算字段的其他用途
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式