我需要查询几个具有相似数据的表,但我不想编写冗长的 UNION 语句。此外,表的数量可能会有所不同。目前,我通过以下方式使用 Coldfusion 完成此操作:
- 循环遍历表名列表
- 在循环内执行 UNION
像这样
set i = 0
set table_suffixes = "blue,green,red,yellow"
loop list="table_suffixes" index="idx_suffix"
set tName = "table_" & idx_suffix
if i > 0
UNION
end if
select *
FROM tName
end loop
这可以在 T-SQL 中完成吗?我还没有找到任何关于使用列表来控制循环的文章。我能找到的最接近的是在循环中放置一个查询。像这样
While (SELECT table_suffix FROM vendor_name WHERE discipline = 'electrical')
BEGIN
*union query...*
END
非常感谢任何帮助我指出正确方向的帮助。我正在使用 SQL-Server 2008