【问题标题】:Select columns containing string选择包含字符串的列
【发布时间】:2016-02-11 20:49:37
【问题描述】:

是否可以检索包含特定字符串的列中的所有数据?我对数据结构没有任何控制权,我宁愿缩短我的代码,也不愿尽可能地输入所有内容。据我所知LIKECONTAIN 的语句仅用于检索特定的行而不是列。假设我有一个列名的表:时间,run1,run2,run3,.....,运行 34,我想使用类似的东西:

SELECT columns FROM [Tablename] WHERE columns CONTAIN 'run';

这可能吗?

谢谢!

【问题讨论】:

  • 如果您必须在 30 列中搜索可能是一个非常繁重的查询的字符串。您只想返回列名还是列中的值?
  • 您需要使用动态 SQL。此功能本身不是 SQL 的一部分。
  • SELECT columns 应该做什么?使用 SQL SELECT,您可以指定要查看表中的哪些列,并在 WHERE 中指定要查看的行。你的结果应该是什么样子?多少行?有多少列?你能举一个你想看到的结果的例子吗?
  • 请标记您正在使用的数据库
  • 我认为您只需键入列名就会更快乐。任何其他解决方案都更难。

标签: sql select contains


【解决方案1】:

使用like

在 Oracle 中,您可以这样做

SELECT column_name 
from all_tab_columns 
where table_name = 'YOUR_TABLE'
and lower(column_name) like 'run%'

在 SQL Server 中,您可以这样做

SELECT column_name 
from information_schema.columns
where table_name = 'YOUR_TABLE_NAME'
and lower(column_name) like 'run%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多