你能做一个Select*FROM CASE WHEN语句

GPH*_*GPH 1 sql-server-2008

是否可以在SQL Server查询CASE WHENFROM子句中执行语句?

例如

SELECT SaleDate 
FROM 
   CASE WHEN GETDATE() <= '01-Apr-2014' THEN tbl1 ELSE tbl2 END 
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 18

使用UNION:

SELECT SaleDate
FROM tbl1
WHERE GETDATE() <= '01-Apr-2014'
UNION ALL
SELECT SaleDate
FROM tbl2
WHERE GETDATE() > '01-Apr-2014'
Run Code Online (Sandbox Code Playgroud)

  • 每个子查询中的`WHERE`子句使它使用一个或另一个,但不是两个. (6认同)
  • 请注意,这会在每个表上引入DISTINCT,其中原始问题中表达的意图似乎并不需要这样.所以你应该提到UNION ALL. (5认同)