高效查询从100个字段的大表中搜索单个字符

时间:2011-01-10 10:13:18

标签: oracle11g

我有一个包含100个字段的表。该表有大约1000条记录。我想知道任何记录中的任何字段是否都包含字符“”。由于存在大量字段(100),我想知道如何形成查询以了解任何记录中的任何字段是否包含字符“”。我不应该使用动态SQL:(

1 个答案:

答案 0 :(得分:0)

好的,不使用动态SQL就可以像这样构建所需的静态SQL:

select 'select pk, ''' || column_name
        || ''' col from mytable where ' 
        || column_name || ' like ''%x%'';'
from user_tab_columns
where table_name = 'MYTABLE';

这将为每列输出一个select语句,然后您可以将其作为SQL Plus脚本运行:

select pk, 'PK' col from mytable where PK like '%x%';
select pk, 'COL2' col from mytable where COL2 like '%x%';
select pk, 'COL3' col from mytable where COL3 like '%x%';