我需要搜索存在于多个(~20个)表之一中的项目 我可以放心地假设该项只存在于其中一个表中,所有表都包含一个具有相同列名和值类型的索引。
表的列各不相同,包含一些可能的值类型(int,string,binary等)。
搜索符合条件的项目的最有效方法是什么? 请注意,任何加入都不需要,因为项目唯一存储在一个表格的一个行中。
答案 0 :(得分:3)
在UNION中枚举了20多个表的SQL UNION。您可以将其设置为视图,然后使用视图进行选择。
对于变化的单个列,您可以将所有类型转换为视图的字符串。
举个例子:
CREATE VIEW Combined_Table AS
SELECT keyfield, Cast(Integerb as varchar) as varcharfield
FROM table1
UNION
SELECT keyfield, varcharfield
FROM table2
UNION ...
然后您可以将视图用作表格:
SELECT keyfield, varcharfield
FROM Combined_table
WHERE keyfield = 'key'