首先明确一点,case when 是一个函数,而不是一个条件语句,语法如下;
CASE...... WHEN......THEN......ELSE......END
具体使用上,既可以哟关于处理返回结果集,也可以在条件语句中使用,示例如下:
1、用于处理返回结果集
SELECT au_fname, au_lname,
CASE state
WHEN 'BJ' THEN '北京'
WHEN 'SH' THEN '上海'
WHEN 'SD' THEN '山东'
ELSE ‘未命名’
END AS StateName
FROM pubs.dbo.authors
ORDER BY au_lname
更复杂一些的写法如下:
case When to_char((Select max(NVL(JDYSSJ,'')) From BO_PM_XMJDYS_P
Where PNO=BO_PM_XMLX_PP.PNO),'yyyyMMdd')>=to_char(NVL(XMJZSJ,''),'yyyyMMdd')
then '延期' else '正常' end as XMYQZT
2、用于处理条件判断,示例
select * from t1 where field1=(case when field2='xxx' then 'aaa' else 'bbb' end)
本文详细介绍了CASWHEN函数的用法,包括其作为一种特殊函数而非条件语句的特点,并通过两个示例展示了如何用于处理返回结果集及进行条件判断。
3599

被折叠的 条评论
为什么被折叠?



