Нужна помощь по простой оси - PullRequest
2 голосов
/ 12 ноября 2019

Новичок в 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

Ответы [ 2 ]

0 голосов
/ 12 ноября 2019

Я предпочитаю apply для этой цели:

select which, val
from xrf cross apply
     (values ('Labnumber', Labnumber),
             ('Silicon', Silicon),
             ('Aluminum', Aluminum),
             ('Magnesium', Magnesium)
     ) v(which, val);
0 голосов
/ 12 ноября 2019

Используйте условное агрегирование здесь

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...