【问题标题】:How to select the column names of a table where column data contains '%' in the values?如何选择列数据在值中包含“%”的表的列名?
【发布时间】:2017-11-07 16:55:19
【问题描述】:

如何选择列数据值中包含“%”的表的列名?

例如:在 COMP 表中有两列 (Addr, Comp_Name),其字符串中包含包含 '%' 的数据。所以我的查询应该返回那些 column_names(Addr, Comp_Name)

【问题讨论】:

标签: sql plsql oracle11g sql-like


【解决方案1】:

我不明白你的意思,但我认为这会对你有所帮助

您可以使用转义标识符

--Queries

-- for %
select * from test_a where col1 like '%\%%' escape '\';

--for _ 
select * from test_a where col1 like '%\_%' escape '\';

【讨论】:

  • 您好 Aljassi,我想选择数据包含 '%' 的表的列
  • 嗨,我不知道是否可以通过简单的选择但您可以创建一个函数并解决它。
  • 1.获取表的所有列名 --SELECT column_name FROM USER_TAB_COLUMNS WHERE table_name = 'YOUR_TABLE' AND data_type = 'VARCHAR2' order by 1; 2. 为每个列名使用游标,计算数据集的个数,当count > 0时保存列名 -- v_sql := ' select count(1) from test_a where '||column_name||'比如 ''%\%%'' 转义 ''\'' ';执行 v_sql 到一个变量 -- variable > 0 然后保存列名
猜你喜欢
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多