case函数

表里有一列col   ,  有3个值,分别是  11,12 ,null

想使用case函数,查询col,如果是11,则查询结果是'这是11', 如果是null , 则查询结果是 '这是空值' , 如果是12,则查询结果是   '这是12'   ,   不要改变case里边when的前后顺序,红框里的该如何书写企业微信截图_17204179262284.png

FineReport 浮一 发布于 2024-7-8 13:59
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
lz623297176Lv5见习互助
发布于2024-7-8 14:21

case when col = 11 then '这是11' when col is null then '这是空值' else '这是12' end

最佳回答
0
华莉星宸Lv7资深互助
发布于2024-7-8 14:01

直接写NULL  或是''

  • 浮一 浮一(提问者) 实测写null不行,因为col是int型, 写''会报警 数据类型不一致
    2024-07-08 14:04 
  • 华莉星宸 华莉星宸 回复 浮一(提问者) 你是什么数据库?可以用函数判断一下是否为空
    2024-07-08 14:04 
  • 浮一 浮一(提问者) 回复 华莉星宸 oracel , 之前考虑过nvl 发现不行
    2024-07-08 14:09 
  • 华莉星宸 华莉星宸 回复 浮一(提问者) nvl(字段,'A') 可以判断为空的时候,赋一个新的值判断嘛 case nvl(字段,'A') when 'A' then '空'
    2024-07-08 14:11 
  • 浮一 浮一(提问者) 回复 华莉星宸 你说的我考虑过咯,其实该字段是实际情况下,是一段复杂的条件查询语句,查询结果要么是非空且只有一个值,要么为空, 我测试了下,nvl的第一参数必须是某个字段,不能是sql查询语句
    2024-07-08 14:16 
最佳回答
0
0035705Lv5初级互助
发布于2024-7-8 14:17
SELECT      CASE col        WHEN 11 THEN '这是 11'         WHEN NULL THEN '这是空值'         WHEN 12 THEN '这是 12'     END AS resultFROM your_table;

  • 浮一 浮一(提问者) 实测写null , 他不能判断这是空值,而是会显示 else 之后的结果
    2024-07-08 14:18 
  • 0035705 0035705 回复 浮一(提问者) 那就在外面再判断一下试试,如果null的话, then '这是空值'
    2024-07-08 14:22 
  • 4关注人数
  • 233浏览人数
  • 最后回答于:2024-7-8 14:21
    请选择关闭问题的原因
    确定 取消
    返回顶部