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

如何基于同表字段创建视图?SQL列转行需求实现咨询

实现多列转行并创建视图

要得到需求中的视图,我们可以通过UNION ALL将tbl表的col1、col2列数据转为行结构,同时过滤NULL值,最终创建目标视图。

创建视图的SQL语句

CREATE VIEW out AS
SELECT emp, col1 AS col
FROM tbl
WHERE col1 IS NOT NULL
UNION ALL
SELECT emp, col2 AS col
FROM tbl
WHERE col2 IS NOT NULL;

逻辑说明

  • 第一个查询:提取emp和非空的col1数据,将col1重命名为统一的col列
  • 第二个查询:提取emp和非空的col2数据,同样将col2重命名为col
  • 用UNION ALL合并两个查询结果(若需自动去重可替换为UNION),最终过滤掉所有含NULL的行

验证结果

查询该视图会得到符合要求的结果:

┌─────────┬─────────┐
│   emp   │   col   │
│ varchar │ varchar │
├─────────┼─────────┤
│ one     │ A       │
│ one     │ B       │
│ two     │ B       │
│ three   │ D       │
└─────────┴─────────┘

内容的提问来源于stack exchange,提问作者Jayendra Parmar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:52:38