任何人都可以从Oracle DB中解释以下SQL语句:
select decode(TRIM(to_char(SYSDATE,'Day')),'Monday','3','1') from dual
最佳答案
首先,让我们从to_char
开始。 to_char(SYSDATE,'Day')
将为您提供今天的星期几。 to_char
可让您将日期(在这种情况下为今天的日期,因为您已经指定sysdate
)转换为某种格式的字符串。在这里看看您可以使用的其他一些日期格式示例:
http://www.techonthenet.com/oracle/functions/to_char.phptrim
删除前导和尾随空格。
现在输入decode
。您可以将decode
视为if else语句。看一眼:
http://www.techonthenet.com/oracle/functions/decode.php
在您的特定示例中,您可以将此语句读为:如果今天是星期一,则返回3,否则返回1。decode
还可以让您做一些更复杂的事情,例如:
select decode(TRIM(to_char(SYSDATE,'Day')),'Monday','3','Tuesday',5,'1')
from dual
它将显示为:如果今天是星期一,返回3,否则,如果今天是星期二,返回5,否则返回1
关于sql - oracle数据库中的解码功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9354346/