【发布时间】:2016-11-07 13:05:58
【问题描述】:
我想在 SQL Server 2014 查询的 WHERE 子句中使用完全不同的条件,而不仅仅是更改参数。
我有以下子句
WHERE (dbo.SecurityCheckUserInADGroups.CWID = @cwid2) AND (dbo.SecurityCheckUserInDatabaseRoles.Server = @server)
如果变量 @cwid2 为 NULL 或为空,我想用
替换 AND 语句的整个第一部分dbo.SecurityCheckLDAPGroupName.DatabaseUserName = @role2
所以这里不仅参数而且列也发生了变化。
我用类似的方法尝试过 If、Case 和 Iif,但不被接受:
(IIF (LEN(@cwid1) > '0, 'dbo.SecurityCheckUserInADGroups.CWID = @cwid2','dbo.SecurityCheckLDAPGroupName.DatabaseUserName = @role2'))
它一直告诉我“在预期条件的上下文中指定的非布尔类型的表达式”
有什么办法可以解决这个问题吗?
【问题讨论】:
-
使用 AND/OR 代替。
标签: sql sql-server sql-server-2014