【发布时间】:2013-11-18 18:16:42
【问题描述】:
我在 SQL Server 2012 上运行。
假设我有 3 个表(Table1、Table2、Table3),它们都有共同的 2 个字段(ID、WhereParam)。
实现这一目标的正确方法是什么?
SELECT ID FROM
(CASE @Var
WHEN "AA" THEN Table1
WHEN "BB" THEN Table2
ELSE Table3)
WHERE "TableSelected".WhereParam = @WhereParam
【问题讨论】:
-
不,你不能这样做。 T-SQL 中的
CASE是一个 表达式,它可以返回不同的值 - 它是 NOT 像 C# 中的Switch这样的流控制语句 - 你不能使用CASE有条件地执行代码 - 改用IF -
我想这就是为什么我问什么是实现类似目标的正确方法:--)
标签: sql-server tsql sql-server-2012