case when
SELECT col1, col2,
CASE
WHEN col3 > 1 AND col3 <2
THEN '1'
WHEN col3 > 2 AND col3 <3
THEN '2'
WHEN col3 > 3 AND col3 <4
THEN '3'
ELSE '4'
END mylevel
FROM table1
注意点:
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名
Decode
Oracle自带了decode函数,而mysql没有
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
decode通常用来处理数值的默认值和其他类似于性别字段的转换等
例如
select decode(性别,男,1,0) from 表
--金额是空的返回0,否则返回金额
decode(金额,'',0,金额)
SQLCaseWhen与OracleDecode函数详解
本文深入探讨了SQL中的CaseWhen语句和Oracle特有的Decode函数,详细讲解了它们的语法、用例及在数据处理中的应用。通过具体示例,展示了如何使用CaseWhen进行条件判断和Decode函数进行值转换。
1797

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



