SQL语句的DECODE()和NVL()函数用法
SELECT
DECODE(choose_tool,0,’宝马’,1,’电动车’,2,’自行车’,’步行’) AS my_tool
FROM
data_tool_t
//分析:当choose_tool为0时候,my_tool=‘宝马’
当choose_tool为1时候,my_tool=‘电动车’
当choose_tool为2时候,my_tool=‘自行车’
当choose_tool都不是上面数字时候,my_tool=‘步行’
NVL()函数:
NVL(ARG,VALUE)如果前面的ARG值不为NULL,返回的值为ARG,否则返回的值为后面的VALUE:
DECODE函数
DECODE 中的if-then-else逻辑
在逻辑编程中,经常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。它的语法如下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。
需要注意的是,这里的if、then及else 都可以是函数或计算表达式。