3.5 高级sql简单介绍
3.5.1 查询间使用运算词
l UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
l EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
l INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
3.5.2 外连接
l left outer join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
l right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
l full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
注:复合外连接按照从左到右的顺序执行连接,左边连接的结果集和右边连接
3.5.3 超级分组和移动函数
l grouping sets:用来在单个sql中形成多级分组。
例:select company_id,node_id,count(customer_id) from customer group by grouping sets(company_id,node_id)
l rollup:可以在单个数据库操作中形成多个分组。
select company_id,node_id,count(customer_id) from customer group by
rollup(company_id,node_id)
注:rollup操作不是可交换的操作,指定用户组的顺序是很重要的。
l cube: 生成分组表中分组的所有组合。
例:select company_id,node_id,count(customer_id) from customer group by
cube(company_id,node_id)
l over:移动函数可以帮助实现移动的数据分析
Select date,avg(qty) over(order by date rows between 1 preceding and 1 following) as values from sale
3.5.4 常用函数介绍
具体参见《SQL Reference Volume 1》
l 转化为数字类型的类型转化函数:
如果参数是一个数字表达式,返回与其相对应的浮点数,否则返回错误代码
DOUBLE() 、FLOAT()
SELECT DOUBLE('5678') FROM TEST;
返回整型常量中的数字、字符串或者日期、时间的整数表示.
SELECT ID, INT(‘111’) FROM TEST;
返回整型常量中的数字、字符串或者时间戳的64位长整数表示.
SELECT ID,BIGINT(time) FROM TEST;
SELECT ID,BIGINT(“111”) FROM TEST;
返回整型常量中的数字、字符串的短整数表示.
SELECT ID, SMALLINT (“111”) FROM TEST;
返回一个数值的单精度浮点数表示.
返回一个数值、decimal的字符串、integer的字符串floating-point的字符串、日期、时间或时间戳的decimal数值
返回一个表示为字符串的值的16进制表示
返回小于或等于参数的最大整数.
SLECT FLOOR(88.93) FROM TEST;
l 转化为字符串类型的类型转化函数:
返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示
SELECT CHAR(SALARY,',') FROM TEST;
返回具有由参数指定的ASCII码的字符,参数可以是INTEGER or SMALLINT
返回字符串、日期型、图形串的可变长度的字符串表示.
SELECT VARCHAR(name,50) FROM TEST ;
返回SMALLINT,INTEGER, BIGINT or DECIMAL参数的字符串值
DIGITS ()
SELECT DIGITS(id) FROM TEST
系统格式原因,本节未完。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9524210/viewspace-471547/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9524210/viewspace-471547/