You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake如何仅获取表中包含值的列?

仅返回宽表中包含非空值的列的方法

针对不同数据库,这里提供几种实用方法,帮你快速筛选出有值的列并查询:

MySQL/MariaDB

步骤1:获取非空列列表

SELECT GROUP_CONCAT(column_name SEPARATOR ', ')
FROM information_schema.columns
WHERE table_schema = '你的数据库名'
  AND table_name = '你的表名'
  AND (SELECT COUNT(*) FROM `你的表名` WHERE `column_name` IS NOT NULL) > 0;

步骤2:用结果查询数据

把上面返回的列名直接放到SELECT语句里,比如:SELECT col1, col2, col3 FROM 你的表名;

一次性动态查询(更高效)

不想手动复制列名的话,用动态SQL直接返回结果:

SET @sql = NULL;
SELECT GROUP_CONCAT(column_name) INTO @sql
FROM information_schema.columns
WHERE table_schema = '你的数据库名'
  AND table_name = '你的表名'
  AND (SELECT COUNT(*) FROM `你的表名` WHERE `column_name` IS NOT NULL) > 0;
SET @sql = CONCAT('SELECT ', @sql, ' FROM `你的表名`;');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

PostgreSQL

获取非空列列表

SELECT string_agg(column_name, ', ')
FROM information_schema.columns
WHERE table_schema = 'public' -- 按需替换成你的schema
  AND table_name = '你的表名'
  AND EXISTS (SELECT 1 FROM "你的表名" WHERE "column_name" IS NOT NULL);

拿到列名后直接写SELECT语句查询,或者用动态SQL:

DO $$
DECLARE
  cols TEXT;
BEGIN
  SELECT string_agg(column_name, ', ') INTO cols
  FROM information_schema.columns
  WHERE table_schema = 'public'
    AND table_name = '你的表名'
    AND EXISTS (SELECT 1 FROM "你的表名" WHERE "column_name" IS NOT NULL);
  EXECUTE 'SELECT ' || cols || ' FROM "你的表名";';
END $$;

SQL Server

获取非空列列表

SELECT STRING_AGG(column_name, ', ')
FROM information_schema.columns
WHERE table_catalog = '你的数据库名'
  AND table_schema = 'dbo' -- 替换成你的schema
  AND table_name = '你的表名'
  AND EXISTS (SELECT 1 FROM [你的表名] WHERE [column_name] IS NOT NULL);

动态SQL版本:

DECLARE @cols NVARCHAR(MAX);
SELECT @cols = STRING_AGG(column_name, ', ')
FROM information_schema.columns
WHERE table_catalog = '你的数据库名'
  AND table_schema = 'dbo'
  AND table_name = '你的表名'
  AND EXISTS (SELECT 1 FROM [你的表名] WHERE [column_name] IS NOT NULL);
EXEC('SELECT ' + @cols + ' FROM [你的表名];');

注意:替换代码里的你的数据库名、你的表名、schema为实际值,避免语法错误。

内容的提问来源于stack exchange,提问作者Ee Ann Ng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:57:08