获取行值作为新列

时间:2014-12-17 14:28:01

标签: sql psql

我想知道是否可以通过查询获取具有相同ID的行的所有值并将它们显示为新列。

例如,如果我有下表:

ID | VALUE
1  | a
1  | b
1  | c
2  | a
2  | b
[...]

我想把它呈现为:

ID | VALUE1 | VALUE2 | VALUE3 [...]
1  |      a |      b |      c 
2  |      a |      b |      - 

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

查询不会这样做。除非你做3个单独的查询。

SELECT ID,VALUE1 FROM Table 
SELECT ID,VALUE2 FROM Table 
ect...

如果您的数据库值不是递归的问题,那么我会以不同的方式设置您的表。

ID | VALUE 1 | a 1 | b 1 | c 2 | a 2 | b [...]

你应该设置像这样的表属性,而不是你的第一个表。

如果要以不同的方式设置表,我会插入语句。

INSERT INTO newTable (ID, VALUE)
SELECT ID,VALUE1 FROM oldTable

INSERT INTO newTable (ID, VALUE)
SELECT ID,VALUE2 FROM oldTable

等..

另一种可能的方法是在应用程序中显示它。以php为例。

foreach($sqlArray as $var){
    echo $var['id'] ' | ' $var['value1']
    echo $var['id'] ' | ' $var['value2']
    echo $var['id'] ' | ' $var['value3']
}