SQL CASE语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL CASE语句相关的知识,希望对你有一定的参考价值。

从数据表中选择一个字段“field”,如果“field”值是1或NULL就赋值为1,其它情况为0,该怎么写啊?这样写对不对啊?
(CASE field
WHEN '1' THEN '1'
WHEN NULL THEN '1'
ELSE '0' END
) AS field

不要使用when null来判断,等于NULL的时候判断不出来的
你可以当字段等于NULL时给一个默认值。比如
(CASE isnull(field,'')
WHEN '1' THEN '1'
WHEN '' THEN '1'
ELSE '0' END
) AS field
或者在when后边写条件
case when field = '1' then '1' when field is null then '1' else '0' end as field
参考技术A select case field when 1 then 5 when 2 then 88 else 99 end aa from tablename
你那样写没有问题的
参考技术B 这个写错了吧追问

那该怎么写?

参考技术C 你这样写已经可以了,还有什么问题!

SQL语句中case,when,then的用法

参考技术A Select Case 语句在有多个可能的条件必须被检查时使用。与 If 语句不同,Select Case语句在找到匹配的Case 表达式并执行了Case 表达式和下一个Case 表达式之间的语句后将立即跳出。如果没有匹配的Case 表达式,将执行其它语句。

Case Else 与lse 的意义相同。Case 语句能接受各种类型的(作为判断条件的)表达式。表达式可以是单一值、由逗号分隔的一组值、能返回值的函数、用"To"关键字指定的值的范围或者使用"Is"关键字对等式或不等式进行测试。您可以连接不同类型的不同表达式,只要将它们用逗号分开即可。

以上是关于SQL CASE语句的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中Case 的用法

SQL - 使用 CASE 语句更新,是不是需要多次重复相同的 CASE?

SQL语句中case,when,then的用法

sql 的case when 语句

sql中的case语句对齐和清理

SQL:在 CASE 语句中使用的别名列名