我正在通过GUID过滤SQL中的记录,如果Guid为空,则跳过过滤器,但如果它有一些值,则根据过滤器获取记录。
我正在使用
WHERE USERID = IIF(@FILTERUSER IS NULL, AD.USERID, @FILTERUSER)
UserId
和FILTERUSER
的类型为uniqueidentifier
。
但它不起作用。请帮助。
答案 0 :(得分:1)
我使用CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)
代替NULL
解决了这个问题。
所以工作代码是:
WHERE USERID = IIF(@FILTERUSER = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER, AD.USERID, @FILTERUSER)