该表包含一个 ID 列、一个 valueHeading 列和一个值列。我想根据值具有的 valueHeading 类型将值列分成两个名为 valueHeading1 和 valueHeading2 的新列。
所以我想加入这个选择:
编辑:完全加入
SELECT ID
,valueHeading
,value as 'valueHeading1'
FROM table1
WHERE valueHeading = 'valueHeading1'
使用此选择:
SELECT ID
,value as 'valueHeading2'
FROM table1
WHERE valueHeading = 'valueHeading2'
在他们各自的 ID 上。我该怎么做呢?
编辑 说明我想做的事情:
原表:
ID valueHeading value
0 valueHeading1 a
0 valueHeading2 a
1 valueHeading1 ab
1 valueHeading2 NULL
2 valueHeading1 abcd
2 valueHeading2 abc
新表:
ID valueHeading1 valueHeading2
0 a a
1 ab NULL
2 abcd abc
最佳答案
如果你只需要加入使用这个。如果您不需要加入,使用 case when 是一种优雅的方式。
SELECT * FROM
(SELECT ID
,valueHeading
,value as 'valueHeading1'
FROM table1
WHERE valueHeading = 'valueHeading1') AS TAB_1,
(SELECT ID
,value as 'valueHeading2'
FROM table1
WHERE valueHeading = 'valueHeading2') AS TAB_2
WHERE TAB_1.ID = TAB_2.ID
关于sql - 连接同一个表中的两个选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14648405/