正在加载中...

关闭
请选择需要拨打的号码
关闭
请根据问题类型选择QQ咨询

sql server数据库在用case when then else end函数时遇到null=null的表达时怎么处理?

sql server数据库在用case when then else end函数时遇到null=null的表达时怎么处理?

在sql server数据库中,有时会在sql语句中遇到条件选择语句case when, 而当遇到某字段为Null时,就会出现报错或字段筛选失效。在where之前的select语句中,我们可以用 case when id is null这样的表述,而在where后面用case when时,用id=case when xxx then id 实际就会出现null=null的表达式,这种表达是无效的。

怎么办呢?

万维景盛工程师为您分享解决方法。

这个时候,要用到sql server里的一个空值判断函数,就是isnull()

isnull(id,0)就表示id字段为NULL时返回0,用0去做操作和判断。

这时问题就解决了。

举例:

isnull(id,0)=CASE WHEN c_is="&PETRUE&" THEN isnull(id,0) ELSE " & id & " END

这样在id为NULL时,实际出来的表达式就是0=0,这样是有效的sql server表达式。


返回上一页