SQL 连接同一个表中的列

问题描述 投票:0回答:1

我需要通过连接同一个表中的列来从表中创建视图。 这是我的表格的创建方式

CREATE TABLE tbl (emp VARCHAR PRIMARY KEY, col1 VARCHAR, col2 VARCHAR);

INSERT INTO tbl VALUES ('one', 'A','B');
INSERT INTO tbl VALUES ('two', 'B',NULL);
INSERT INTO tbl VALUES ('three', 'D',NULL);
INSERT INTO tbl VALUES ('four', NULL,NULL);
INSERT INTO tbl VALUES ('five', NULL,NULL);

看起来像这样,下表中的空值表示

NULL

D SELECT * FROM tbl;
┌─────────┬─────────┬─────────┐
│   emp   │  col1   │  col2   │
│ varchar │ varchar │ varchar │
├─────────┼─────────┼─────────┤
│ one     │ A       │ B       │
│ two     │ B       │         │
│ three   │ D       │         │
│ four    │         │         │
│ five    │         │         │
└─────────┴─────────┴─────────┘

我需要的视图是第一列与其余列的叉积,应该看起来像

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

sql
1个回答
0
投票

SELECT emp, col1 AS col FROM tbl WHERE col1 IS NOT NULL 联盟 SELECT emp, col2 as col FROM tbl WHERE col2 IS NOT NULL

© www.soinside.com 2019 - 2024. All rights reserved.