Orcal常用函数

1.orderby  语句用于根据指定的列对·结果集进行排序,默认按照升序对结果集进行排序。
2.Oracle行转列函数Listagg()
基础用法:LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX),把它当做sum函数来使就可以了。
orderBy是对结果集进行排序,默认的是按照递增的方式
3.NVL( string1, replace_with)  如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值;
  NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2
4.decode(字段或字段的运算,值1,值2,值3)
 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
 当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
 5.to_char("YYYY-MM-DD HH24:MI") 日期转换函数,转换成标准的格式2015-12-07 15:58
 6.字符串的拼接:a||"-"||b
 GetDate()或Date()函数可以得到日期+时间
  sysDate()就是带有时分秒的日期函数
  to_date(to_char(TZ_DC_WJ_JSRQ,'YYYY-MM-DD')||','||to_char(TZ_DC_WJ_JSSJ,'HH:MI'),'yyyy-mm-dd,hh24:mi:ss') 
 7.多个条件的选择语句
 CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类'           WHEN col_1 IN ('a')       THEN '第二类'  ELSE'其他' END  
 8.COALESCE(A,B,C.....) 
 返回值是所有字符里面第一个非空的元素,如果全部是空值,返回值为null
 9.orcal 中获取一个blob类型的字段的长度 dbms_lob.getLength(bolb_filed) 
 10.orcal  中字符串的截取 SUBSTR(syt,startPos,length)  
 获取字符串的长度 length(str)
 11.order by 排序有问题 
 你这个sort列肯定是非数值型的,所以他排序的时候会按照字符串排序方式;1开头的字符串排在前面,排完了,然后才开始排2开头的字符串,3、4、5往后面推;
如果你想要按照数字排序,先要把字符串转换成数字格式;
如果是sqlserver数据库的话, order by convert(int,sort) ASC或者order by cast(sort as int) ASC
如果是oracle数据库的话就用order by to_number(sort) ASC;  cast(Snum as int)
12.字符串转换成日期类型 to_date('2016-12-12','YYYY-MM-DD')
13.批量插入sql语句:insert into xxxxx(xxxx,xxxx,xxxx)select xxxx,xxxx,xxxx from ps_TZ_NEW_ACT_TBL@CRMPRD848 where
14.批量更新:update table_name t1 set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a);

你可能感兴趣的:(IT)