设为首页 收藏本站
查看: 866|回复: 0

[经验分享] DB2 SQL语句笔记

[复制链接]

尚未签到

发表于 2016-11-10 11:14:49 | 显示全部楼层 |阅读模式
  
1、CASE WHEN 语句
 
SQL中的CASE WHEN使用,Case具有两种格式:简单Case函数和Case搜索函数。
 
--简单Case函数
CASE sex
                 WHEN '1' THEN '男'
                 WHEN '2' THEN '女'
                                  ELSE '其他'
END
 
--Case搜索函数
CASE
                WHEN sex = '1' THEN '男'
                    WHEN sex = '2' THEN '女'
                ELSE '其他'
END
 
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
 
--比如说,下面这段SQL,你永远无法得到“第二类”这个结果
CASE
                 WHEN col_1 IN ( 'a', 'b') THEN '第一类'
                    WHEN col_1 IN ('a')       THEN '第二类'
                 ELSE'其他'
END
 
2DB2基本函数
 
时间:
取得当期时间:CURRENT TIMESTAMP 或者CURRENT DATE 或者CURRENT_DATE
取得时间的年月日:YEAR(CURRENT_DATE) MONTH(CURRENT_DATE) DAY(CURRENT_DATE)
计算时间:
              往后10天  CURRENT_DATE + 10 DAY
              往后1一个月 CURRENT_DATE + 1 MONTH
              往后1年 CURRENT_DATE + 1 YEAR
              往前相减即可
 
字符串:
TRIM(' AA ')='AA' 去头尾的空字符
LENGTH('AA')=2            计算长度
SUBSTR('ABCDEFG',1,2)='AB'  从第1个开始往后截2个
 
其他:
COALESCE(列,默认值)  把空值查询为默认值
 
字符转换为数字:
DECIMAL(列,10,2) 10表示长度,2表示精度
 
db2 备份还原命令:
db2 force application all   关闭所有连接
db2 backup db 数据库名字 to d:/
db2 restore db 数据名 from 目录
 
3TOP    N   SQL语句
 
Oracle数据库
SELECT * FROM TABLE1 WHERE ROWNUM<=N
 
Infomix数据库
SELECT FIRST N * FROM TABLE1
 
DB2数据库
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N
或者
SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY
 
SQL Server数据库
SELECT TOP N * FROM TABLE1
 
Sybase数据库
SET ROWCOUNT N
GO
SELECT * FROM TABLE1
 
MySQL数据库
SELECT * FROM TABLE1 LIMIT N
 
FoxPro数据库
SELECT * TOP N FROM TABLE ORDER BY COLUMN

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-298411-1-1.html 上篇帖子: [SQL] 系统存储过程 下篇帖子: SqlDependency执行复杂SQL语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表