【问题标题】:Need help on simple pivot在简单的支点上需要帮助
【发布时间】:2020-03-07 18:39:28
【问题描述】:

SQL 新手并在做一些简单的枢轴问题时遇到问题

我有一张桌子,

Labnumber : Silicon : Aluminum : Magnesium
9086-1    :  7.05   :    15    :    .7   

我需要的是:

labnumber   9086-1 
Silicon      7.05 
Aluminum     .15 
Magnesium    .7

我玩过枢轴命令

SELECT LabNumber,ElementFROM XRF UNPIVOT ( labnumber1 for Element in(Silicon,Aluminum,Calcium,Magnesium) )As test

但我得到的只是这个

LabNumber Element 
9086-1    Silicon 
9086-1    Aluminum 
9086-1    Calcium 
9086-1    Magnesium

【问题讨论】:

    标签: sql sql-server pivot


    【解决方案1】:

    这里使用条件聚合

    SELECT 
        Labnumber = MAX(CASE WHEN column = 'Labnumber' THEN column END)
        Silicon   = MAX(CASE WHEN column = 'Silicon' THEN column  END)
        Aluminum  = MAX(CASE WHEN column = 'Aluminum' THEN column END)
        Magnesium = MAX(CASE WHEN column = 'Magnesium' THEN column END)
    FROM
        table
    

    【讨论】:

      【解决方案2】:

      为此我更喜欢apply

      select which, val
      from xrf cross apply
           (values ('Labnumber', Labnumber),
                   ('Silicon', Silicon),
                   ('Aluminum', Aluminum),
                   ('Magnesium', Magnesium)
           ) v(which, val);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多