我正在尝试这个并收到错误。
SELECT Count(*) FROM
CASE @Type
WHEN 'UserName' THEN Users WHERE UserName = @Name;
WHEN 'UserGroup' THEN Groups Where GroupName = @GroupName AND GroupType = 'USERGROUP'
END
我知道你通常会在'='符号后使用案例......但有没有办法做我在这里尝试的事情?
sql server 2008。
答案 0 :(得分:5)
您需要编写动态SQL并执行该操作,或者使用IF语句和两个查询...
IF (@type = 'UserName')
SELECT COUNT(*) FROM Users WHERE UserName = @name
ELSE IF (@type = 'UserGroup')
SELECT COUNT(*) FROM Groups WHERE GroupName = @GroupName AND GroupType = 'USERGROUP'
答案 1 :(得分:1)
<强>不。强>
在查询中动态更改字段,表或数据库的唯一方法是使用Dyanmic SQL.但这很危险,所以请小心谨慎。