我有一个包含很多列的表,其中一些列值包含 , 作为特殊字符。
我查看了使用 regex_like 的示例,但我不需要列的值。我只需要包含 value 的列名称作为特殊字符。
column1 column2 column3
abc, pqr def,
xyz mno ghi
查询上述数据应返回column1和column3。有人可以帮助查询以获取列 1 和列 3 的输出吗?
感谢您的帮助。
最佳答案
如果你想识别有逗号的列,你可以这样做:
select 'column1'
from t
where column1 like '%,%'
group by 1
union all
select 'column2'
from t
where column2 like '%,%'
group by 1
union all
. . .
这将返回包含逗号的列名列表。
您还可以在选择
中执行此操作:
select ((case when sum(case when column1 like '%,%' then 1 else 0 end) > 0 then 'column1; ' end) ||
(case when sum(case when column2 like '%,%' then 1 else 0 end) > 0 then 'column2; ' end) ||
. . .
)
from t;
您可以使用 all_tab_cols
以及 SQL 查询或电子表格构建这些查询。
关于sql - Oracle sql查询查找具有特殊字符作为值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34533085/