如何在 SQL 的新列中显示每个值

How can I display each value in a new column in SQL

我有以下查询:

(SELECT 
  art_nr
, MENG_STK as S01
FROM NW_ART@MMS_HK WHERE BESTAND_L = 1 AND HIER_FD in (8701)
AND art_nr in (43848))

Union
(Select art_nr, MENG_STK as S02 
FROM NW_ART@MMS_HK WHERE BESTAND_L = 1 AND HIER_FD in (8702)
AND art_nr in (43848))

Union
(Select art_nr, MENG_STK as S03  
FROM NW_ART@MMS_HK WHERE BESTAND_L = 1 AND HIER_FD in (8703)
AND art_nr in (43848));


The outcome is the following :

  ART_NR    S01
 --------   ---- 
1|43848     742
2|43848     1357
3|43848     2172


I want to turn it into this: 

   ART_NR    S01   S02   S03   
   --------  ----  ----  ----
1| 43848     742   1357  2172

我不知道如何将其连接成 1 行 3 列,我试过:

Select S01, S02, S03.....但是显示错误。

有没有人可以帮帮我?

你不需要联合。

SELECT 
  art_nr
, max(case when BESTAND_L = 1 AND HIER_FD in (8701) then MENG_STK end) as S01
, max(case when BESTAND_L = 1 AND HIER_FD in (8702) then MENG_STK end) as S02
, max(case when BESTAND_L = 1 AND HIER_FD in (8703) then MENG_STK end) as S03

FROM NW_ART@MMS_HK WHERE art_nr in (43848))
Group By art_nr;