SQL Server:uniqueidentifier上的ISNULL
发布时间:2020-12-12 06:22:16 所属栏目:MsSql教程 来源:网络整理
导读:我试图在WHERE子句中比较列col1和变量@myvar.两者通常都包含GUID,但也可能包含NULL值. 我以为我可以通过使用WHERE ISNULL(col1,”)= ISNULL(@myvar,”)来解决NULL = NULL计算为FALSE的事实.这将比较两个空字符串,并评估为TRUE. 但是,这将产生以下错误消息: M
我试图在WHERE子句中比较列col1和变量@myvar.两者通常都包含GUID,但也可能包含NULL值.
我以为我可以通过使用WHERE ISNULL(col1,”)= ISNULL(@myvar,”)来解决NULL = NULL计算为FALSE的事实.这将比较两个空字符串,并评估为TRUE. 但是,这将产生以下错误消息:
我试过了 DECLARE @myvar uniqueidentifier = NULL SELECT ISNULL(@myvar,'') as col1 相同的错误消息. 两个问题: 第二,有没有更好的方法来说明我需要的WHERE子句,以允许比较可能为NULL的uniqueidentifier? 解决方法由于您传递的第一个参数isnull不是文字null,它将确定该调用的返回类型,在您的情况下是唯一标识符.第二个参数”,不能转换为这种类型,因此你得到的错误.解决此问题的一种方法是显式检查空值: WHERE (@myvar IS NULL AND col1 IS NULL) OR (col1 = @myvar) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |