【问题标题】:SQL Select - transform rows in columnsSQL Select - 转换列中的行
【发布时间】:2016-07-07 13:33:24
【问题描述】:

很基本,但我现在卡住了。

在 Informix 数据库(无数据透视选项)上,我正在寻找一种使用 SQL 转换下表的动态方法:

书 |信息 |价值 ----------------------------------------- 白鲸记 |价格 |高的 白鲸记 |库存|很少 哈姆雷特 |价格 |低的 哈姆雷特 |库存|许多 浮士德 |价格 |中等的 浮士德 |库存|普通的

结果表:

书 |价格 |股票 ----------------------------------------- 白鲸记 |高 |很少 哈姆雷特 |低 |许多 浮士德 |中 |普通的

感谢您的帮助!

【问题讨论】:

    标签: sql informix


    【解决方案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
    

    【讨论】:

    • 对,但我的值实际上是一个字符串。不好的例子,我改了。
    • 在这种情况下使用MAX
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2011-01-17
    • 2022-12-25
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多