TRUNK用法分为两种:
一、按照指定的格式截取日期
语法格式如下:
TRUNK(date[,fmt])
其中:
date -- 相应的日期值
fmt -- 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去。
例子:
SQL> select trunc(sysdate,'mm') from dual;
结果:2009-3-1
SQL> select trunc(sysdate,'yy') from dual;
结果:2009-1-1
SQL> select trunc(sysdate,'dd') from dual;
结果:2009-3-4
SQL> select trunc(sysdate,'D') from dual;
结果:2009-3-1
二、按照指定的格式截取数字
语法格式如下:
TRUNK(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
例子:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记
DECODE用法:
decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
取指定表的字段列表:
使用场景:
在查询数据和编写SQL的时候,需要遍历表的所有字段,一个一个写费时又容易出错。
高效做法:
select column_name||',' from user_tab_columns
where table_name=UPPER('&table_name' )
order by column_id;