如何在 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;
我有以下查询:
(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;