distinct : 去重复
mysql :
①IFNULL(字段,0) :作用是 值为 NULL 则 ISNULL() 返回 0。
COALESCE(字段,0)与IFNULL(字段,0)用法一致。
group by 必须放在 order by 和 limit之前。
oracle :
①nvl(字段,0) :作用是 值为 NULL 则 ISNULL() 返回 0。其中0也可以是字段
②case when 条件1 then 结果1 when 条件2 then 结果2 else 结果3 end
作用:如果条件1成立则得到结果1,如果条件2成立则得到结果2,否则得到结果3
③decode(字段1,0,0,字段2/字段1)
作用:如果字段1为0则结果为0,如果字段1不为0结果则为字段2/字段1(判断除数为用途较大)
另:decode中可使用其他函数,如nvl函数或sign()函数等;
④sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1,
如果取较小值就是
select monthid,decode(sign(sale-6000),-1,sale,6000) from output,即达到取较小值的目的。
⑤wm_concat(distinct 字段1)
作用:将去重后的字段1汇总到一块(可当做group by返回的字段一起使用)
另:substr(dno,1,instr(dno,‘,‘)-1)截取第一个,前的字符
substr(字段,1,3)=‘021‘ 表示以021开头的字段