在sql中的所有表中查找值

时间:2014-10-02 13:44:11

标签: sql oracle

使用SQL我有一系列表名:

  SELECT TNAME FROM SYS.COL WHERE CNAME='COLUMN_XPTO' AND TNAME LIKE '%SOMETHING%';

返回一个包含一列的表,其中包含所需值或列的表名。

我现在想在这些表之间进行迭代寻找:

  SELECT * FROM x WHERE COLUMN_XPTO='someValue';

其中x是前一个选择的表。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

declare @tablename varchar(200)
declare c1 cursor for select table_Name from information_schema.columns where column_name = 'myColumn'
open c1
while 0=0
begin
    fetch next from c1 into @tablename
    if @@FETCH_STATUS = 0
    begin
        exec('select * from ' + @tablename + ' where myColumn= ''myValue''')
    end
    else
        break
end
close c1
deallocate c1