case when可以根据条件重设某个字段的返回值,但是一般情况下都是根据本字段的值来返回需要的值,如:
select t.Name,
(case t.id --此处可以省略括号,改变id为name
when 1 then 'zhao'
when 2 then 'qian'
when 3 then 'sun'
else 'li'
end) --注意不要丢掉end关键字哦
from T t;
但是如果根据多个字段来限制返回值,case when一样也是可以处理的:
SELECT
CASE
WHEN t.flag=1 AND t.date<=SYSDATE-2 THEN 1
ELSE 0
END as new_flag
FROM t;
这样,凡是flag=1并且date为两天之前的,就返回值1,否则返回0,该字段为一个伪列字段,可以起一个任意的别名,如new_flag。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/751371/viewspace-708176/
,如需转载,请注明出处,否则将追究法律责任。