天天看点

实用的sql

工作也已经一个月了,现在说说工作中常用的一些东西,虽然大部分人都会,但是个人认为这些还是蛮重要的:

COALESCE(XXX,XXX) 一般处理数据库中null值的情况而且要进行简单的运算,如COALESCE(COMM_VOL,0)也就是把COMM_VOL为null情况下等于0,之后可以对这个结果进行SUM运算。

DEC(XXX,18,2)进行小数运算,18位有效数字,两位小数点,由于这些有的需要保留字段截取有效数字还是很有效的。

GROUP BY 别看这个很简单的东西,有的用起来也是有些技巧的,比如取USR_ID,里面可能有重复的值,虽然我们可以用DISTINCT的去取,但是一些特定的情况下我们要把重复的值取出来,但是存储的时候要进行替重,可以最后的时候GROUP BY USR_ID,算是一个技巧吧。

还有就是DB2的进行除法运算,真心的有一个下午搞的我是没有一点脾气,CASE WHEN 分母<>0 THEN ...END,还比如A/(B/C)这个运算其主要还是要对B和C进行判断,如果(A/B)/(C/D)可以不进行对B的判断,这个我也不晓得什么原因,可以试验一下...

还要就是进行表关联查询的时候大表和小表关联,谁关联谁,这个对耗在查询上面的时间还是有很大的差距的。

还有就是对那种类似于表单的分组的查询啊什么的其实就是

SELECT

CASE WHEN XXX THEN 1

    WHEN XXX THEN 2

    WHEN XXX TEHN 3

END,

XXX,

XXXX,

FROM XXX_XXX

GROUP BY

XXX

ORDER BY 1;

导入导出: