sql - Oracle sql查询查找具有特殊字符作为值的列

标签 sql oracle oracle11g

我有一个包含很多列的表,其中一些列值包含 , 作为特殊字符。

我查看了使用 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/

相关文章:

SQL Server 数据优化顾问错误

sql - 始终包含空记录的左连接

java - 如何解决在 Oracle XE 中使用 Java 6 程序时遇到的 UnsatisfiedLinkError?

sql - 对两列的任意组合的唯一约束

mysql - 将 SQL Server 查询结果格式化为 3D 直方图

java - JPA 标准查询 : writing query with array operators

sql - 如何加载大量字符串与oracle数据库匹配?

java - 与Java Spring、maven、oracle、hibernate的连接

sql - 如何在 Oracle 中为日期添加前导零?

mysql - 分布式数据库主键的选择