任何人都可以从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.php
trim删除前导和尾随空格。

现在输入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/

10-10 20:46