我想从许多表格之一中进行选择。该选择取决于某些条件。我该怎么做? 我想应该是这样的(但不起作用):
CASE x
WHEN x=1 THEN
select Id,Name from table1
WHEN x=2 THEN
select Id,Name from table2
WHEN x=3 THEN
select Id,Name from table3
END CASE;
答案 0 :(得分:0)
一种方法:
SELECT id, name
FROM table1
WHERE x = 1
UNION ALL
SELECT id, name
FROM table2
WHERE x = 2
UNION ALL
SELECT id, name
FROM table3
WHERE x = 3
仅返回一个表的数据(如果x
是这些值中的任何一个)。
答案 1 :(得分:0)
效率低下的解决方案可查询所有3个表,但会在代码中模仿switch语句(假设检索到的列相等)
declare @inputValue int = 1
SELECT * FROM (
SELECT 1 [key], Id from table1
UNION ALL
SELECT 2, Id from table2
UNION ALL
SELECT 3, Id from table3
) x
where x.[key] = @inputValue