用于在许多表之一中查找唯一Item的SQL Query

时间:2010-10-20 10:58:50

标签: sql search

我需要搜索存在于多个(~20个)表之一中的项目 我可以放心地假设该项只存在于其中一个表中,所有表都包含一个具有相同列名和值类型的索引。

表的列各不相同,包含一些可能的值类型(int,string,binary等)。

搜索符合条件的项目的最有效方法是什么? 请注意,任何加入都不需要,因为项目唯一存储在一个表格的一个行中。

1 个答案:

答案 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'