当colunm为null时,如何使用case语句 [英] How to use case statement when colunm is null

查看:71
本文介绍了当colunm为null时,如何使用case语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

声明@Flag Varchar(50)= null



SELECT [uniquiID],

CountryFlag,

EventImage

,CONVERT(varchar(50),[StartDate],106)作为StartDate

,CONVERT(varchar(50),[EndDate],106)作为EndDate

,[EventName],[Description],[CountryCode],URL,

- N.Flag = 1时的情况,然后是N.Flag = 0时的N.Remark那么N.Remark结束为''备注''

备注,

N.Flag = 1时的情况然后当N.Flag = 0然后'拒绝'时'已批准'当N.Flag =''然后'等待'其他'前进'END作为状态,



标志



来自TradefairData N

其中1 = 1



我尝试过:



以上是我的代码当我执行时Null Value没有得到并且没有显示Pending在哪里获得Null值所以请帮助我如何使用

解决方案
你应该使用 IS NULL ,不是吗?例如,请参阅 sql server - 如何使用标量函数检查CASE语句中的NULL? - 堆栈溢出 [ ^ ]。


Quote:

未显示Pending where Null Value

如果我理解正确,您希望WHERE子句包含N.Flag也为NULL的情况。



这很简单,你只需要COALESCE吧。

  when   COALESCE (N.Flag,' ')= ' ' 然后 ' 待定' 



这意味着如果N.Flag为null或空白。


(CASE WHEN(CONVERT(VARCHAR,columnname)为null或CONVERT(VARCHAR,columnname) = 0)那么'


Declare @Flag Varchar(50)=null

SELECT [uniquiID],
CountryFlag,
EventImage
,CONVERT(varchar(50), [StartDate],106) as StartDate
,CONVERT(varchar(50), [EndDate],106) as EndDate
,[EventName],[Description],[CountryCode],URL,
-- Case When N.Flag=1 then N.Remark when N.Flag=0 then N.Remark End as ''Remarks''
Remark,
Case when N.Flag=1 then 'Approved' when N.Flag=0 then 'Disapproved' when N.Flag= '' then 'Pending' else 'Forward' END as Status,

Flag

FROM TradefairData N
where 1=1

What I have tried:

above is my code when i Execute then Null Value not get and not showing Pending where Get Null Value so Please Help Me How to Use

解决方案

You should use IS NULL, shouldn't you? See, for instance sql server - How to check for NULL in a CASE statement with a Scalar Function? - Stack Overflow[^].


Quote:

not showing Pending where Get Null Value

If I understand you correctly, you want your WHERE clause to include cases where N.Flag is also NULL.

This is very easy, you just need to COALESCE it.

when COALESCE(N.Flag, '') = '' then 'Pending'


This means if N.Flag is either null or blank.


(CASE WHEN  (CONVERT(VARCHAR,columnname) is null or CONVERT(VARCHAR,columnname) = 0 ) THEN ''


这篇关于当colunm为null时,如何使用case语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆