DECODE(TO_CHAR(BDATE,'YYYY-MM-DD'),'1900-01-01','1990-01-01',TO_CHAR(BDATE,'YYYY-MM-DD')) AS date, 这句话的意思是什么?
慕斯王
浏览 175回答 2
2回答
江户川乱折腾
TO_CHAR(BDATE,'YYYY-MM-DD'):是将表中BDATE字段(应该是日期类型)转化为格式为YYYY-MM-DD的字符类型,比如2009-12-15DECODE(TO_CHAR(....),'1900-01-01',‘1990-01-01’,TO_CHAR(...)) as date :首先DECODE()的语法是DECODE(A,a,m,n),意思是IF A=a then 显示m else 显示 n .也就是如果BDATE是1900-01-01的话就显示1990-01-01否则就仍显示BDATE。AS 只是给这整个DECODE()的字段取个别名,你可以不加AS DATE试试,看看输出的第一行就明白了。
select decode('1','1','2','4') from dual;select decode ('1','2','3','4') from dual;/*--执行上面代码可得知decode是怎么回事--select decode (字段,值1,值2,值3) from 表 如果字段=值1 则得到的结果是值2 否则得到的结果是值3*/select sysdate from dual;select to_char(sysdate,'yyyy-mm-dd') from dual/*---to_char() 查询出来的日期,以后面的‘yyyy-mm-dd’ 的格式显示*/