【问题标题】:SQL Find All Tables and Fields Where a Specific Value is PresentSQL 查找存在特定值的所有表和字段
【发布时间】:2021-12-21 16:53:00
【问题描述】:

我不是 SQL 专家,因此在尝试实施或修改我在网上看到的针对我的案例的内容时有些困难。

尝试从我不熟悉的架构构建查询。 Schema 有 50 多个表,每个表都有不同数量的列。

我有几个值,但找不到这些值所在的字段或表。

试图用类似这样的东西(见下面的代码)找到这些值,这会有所帮助,但我想不出办法:

  1. 包括所有列,而不必在 IN 运算符中全部输入。
  2. 不确定是否有办法修改代码,这样我就不必为架构中的每个表运行它。
SELECT
*
FROM
    XX_PROD.XXX_MART.FACT_SALES_ORDER AS FSO
    
WHERE 'AVP' IN (FSO.COLUMNS)

LIMIT
10000

【问题讨论】:

  • 我不认为有一种简单的方法可以实现这一点,您可能必须构建一个自定义存储过程来做到这一点。 SQL 未定义为以这种方式工作。

标签: sql snowflake-cloud-data-platform workbench


【解决方案1】:

我尝试对列运行子查询以至少能够运行每个表的所有列,但令人惊讶的是这不起作用。

使用此代码至少能够获取特定架构中可能包含我正在查找的值的列的列表。它确实为我节省了大量时间:

SELECT TABLE_NAME,COLUMN_NAME
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE 
   TABLE_SCHEMA like 'XXXX_MART'
   AND COLUMN_NAME like '%START_DATE%'
   
ORDER BY
TABLE_NAME ASC

【讨论】:

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