我可以使用SQL案例来选择表吗?

时间:2011-03-16 16:19:43

标签: sql sql-server-2008

我正在尝试这个并收到错误。

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。

2 个答案:

答案 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.但这很危险,所以请小心谨慎。