是否可以在SQL Server查询的CASE WHEN
子句中执行FROM
语句?
例如
SELECT SaleDate
FROM
CASE WHEN GETDATE() <= '01-Apr-2014' THEN tbl1 ELSE tbl2 END
答案 0 :(得分:18)
使用UNION:
SELECT SaleDate
FROM tbl1
WHERE GETDATE() <= '01-Apr-2014'
UNION ALL
SELECT SaleDate
FROM tbl2
WHERE GETDATE() > '01-Apr-2014'
答案 1 :(得分:2)
尝试使用IF / THEN
If getdate() <= '4/1/2014'
BEGIN
SELECT SaleDate FROM tbl1
END
ELSE
BEGIN
SELECT SaleDate from tbl2
END
答案 2 :(得分:-2)
不,你不能。如果你不耐烦地尝试它,那就显而易见了。如果您在SQL Server Management Studio中尝试过它,您会看到以下错误:
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'CASE'.
有关FROM
查询的SELECT
子句的详细信息,请参阅MSDN文档 - FROM (Transact-SQL) [SQL Server 2008]。
我将此标记为社区维基,因为此问题并未表明提问者在发布之前进行了粗略的研究。