2016-07-07 88 views
1

非常基本,但我现在卡住了。SQL选择 - 转换列中的行

在Informix数据库(无支点选项),我正在寻找使用SQL下表改造,以动态方式:

 
book  | info | value 
----------------------------- 
Moby Dick | price | high 
Moby Dick | stock | few 
Hamlet  | price | low 
Hamlet  | stock | many 
Faust  | price | medium 
Faust  | stock | normal 

结果表:

 
book  | price | stock 
----------------------------- 
Moby Dick | high | few 
Hamlet  | low | many 
Faust  | medium | normal 

感谢您的帮助!

回答

1

您可以基于CASE表达式按书集合进行聚合。尝试这样的事情。

SELECT book, 
MAX(CASE WHEN info = 'price' THEN value END) as price, 
MAX(CASE WHEN info = 'stock' THEN value END) as stock 
FROM table1 
GROUP BY book 
+0

对,但我的价值实际上是一个字符串。不好的例子,我改变它。 – LordGhettofaust

+0

在这种情况下使用'MAX' – ughai

+0

太好了!这工作。谢谢你... – LordGhettofaust