自己整理的学习资料——DB2 V8数据库基础(十九)

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;

  返回整型常量中的数字、字符串或者日期、时间的整数表示.

INT()

         SELECT  ID, INT(‘111’) FROM TEST;

  返回整型常量中的数字、字符串或者时间戳64位长整数表示.

BIGINT()

         SELECT  ID,BIGINT(time) FROM TEST;

SELECT  ID,BIGINT(“111”) FROM TEST;

返回整型常量中的数字、字符串的短整数表示.

SMALLINT()

SELECT  ID, SMALLINT (“111”) FROM TEST;

  返回一个数值的单精度浮点数表示.

REAL()

         SELECT  REAL(10)  FROM  TEST;

返回一个数值、decimal的字符串、integer的字符串floating-point的字符串、日期、时间或时间戳decimal数值

              DEC[IMAL]()

              SELECT DEC(11) FROM TEST

       返回一个表示为字符串的值的16进制表示

HEX()

SELECT  HEX(16)  FROM  TEST;

  返回小于或等于参数的最大整数.

FLOOR()

         SLECT  FLOOR(88.93)   FROM   TEST;

 

l         转化为字符串类型的类型转化函数:

返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示

CHAR()

    SELECT  CHAR(SALARY,',')  FROM  TEST;

  返回具有由参数指定的ASCII码的字符,参数可以是INTEGER or SMALLINT

         CHR()

    SELECT  CHAR(167)  FROM  TEST;

  返回字符串、日期型、图形串的可变长度的字符串表示.

VARCHAR()

  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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值