与空值相关的一些函数,,完成对空值的一些操作 nvl nvl2 nullif coalesce 条件处理函数 case表达式 decode a.coalesce(bonus,salary*0.5,100) 返回参数列表中第一个非空参数,参数列表中最后一个值通常为常量 参数个数不受限制。 b.case语句 是数据中的分支语句,相当于Java中的switch-case语句 select case job when 'name' then salary //注意:没有逗号 when 'name' then salary when 'name' then salary else salary //相当于case语句的default end neww_salary// case开始到end结束这部分的别名 c.decode函数 Oracle中等价于case when语句的函数,作用同case语句相同 decode函数语法如下: decode(判断条件,匹配1,值1,匹配2,值2,...,默认值) 如果判断条件=匹配1,则返回值1 判断条件=匹配2,则返回值2 decode(job,'Analyst',salary*1.1,'clerk',1.05*ssala,salary) d.nvl函数 nvl(表达式1,表达式2),空值转换,表达式一为空时,需要转换为第二个参数。 e.nvl2(表达式1,表达式2,表达式3)函数式对第一个参数进行检查,如果第一个参数不为空, 输出第二个参数,如果第一个参数为空,则输出第三个三处。表达式一可为任何数据类型。 nvl(comm,conn+sal,sal) f.nullif(表达式1,表达式2)主要完成两个参数的比较,、 当两个参数不相等时候,返回第一个参数值 当两个参数相等时候,返回是空值 5)字符函数 主要指参数类型是字符型,不同函数返回值可能是字符型或数字类型 lower(列名/表达式):全小写 upper(列名/表达式):全大写 initcap(列名/表达式):首字母大写 cancat(列1/表达式1,列2/表达式2):字符串拼接 如:concat('good','string'):结果goodString substr(列名/表达式,n,m):字符串截取从n开始m个字符 如果截取的数字为n:代表从第n位开始匹配 如:substr('string',n,m):结果str (c从第n个开始的m个字符) 第二位如果为负数,从右往左数 select substr('string',-3,2) from dual;结果in(从右数第三位开始往右的2个) length(列名/表达式):返回字符串长度 instr('string',‘n’):结果为3 返回一个长度,返回n的位置。 trim(a from b):去掉左右两边指定字符,去掉b左右两边的a 如:trim('s' from 'ssmith'):结果mith replace(文本,查找字符串,替换字符串):替换字符串 如:replace('abc','b','d'):结果adc lpad:左补丁 如lpad(ename,10,'*'):名字不足十个字符用*填补 rpad:右补丁 6)查询结果排序 正序排列,asc可以省略(升序) 降序排列,desc(descend)不可省略 注意:排序语句放在查询语句的最后 排序可以用列名,列别名,函数,数字,表示按第几列 SQL语句的书写顺序: select from where orderby 实际的执行顺序是: from where select order by
下一篇:炉石砰砰博士镜像攻略