在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表达式。