【问题标题】:How to pivot a field into two seperate fields based on condition如何根据条件将字段转换为两个单独的字段
【发布时间】:2019-03-07 06:57:49
【问题描述】:

我正在就以下问题寻求帮助。我正在寻找最优雅的方法来做到这一点,因为我目前的方法真的一点都不好。任何帮助将不胜感激:

我有这个:

cnumber     cid         prim
n100        123123      y         
n100        465488      n         
n123        798         y         
n768        544         y         
n455        123         y         
n455        098         n       

我希望得到这个:

cnumber     y           n         
n100        123123      465488
n123        798         NULL
n768        544         NULL
n455        123         98

【问题讨论】:

    标签: sql filter pivot


    【解决方案1】:

    这是你想要的吗?

    select cnumber,
           max(case when prim = 'y' then cid end) as y,
           max(case when prim = 'n' then cid end) as n
    from t
    group by cnumber;
    

    【讨论】:

    • 谢谢你,戈登。你既是绅士又是学者!这是一个比我目前拥有的更好的解决方案。希望你有一个美好的一周,谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    相关资源
    最近更新 更多