SQL - 添加列
SQL - Adding columns
我是 SQL 的新手,想知道是否有人可以帮助我解决这个小问题。我试图让我的输出如下所示:
但我目前得到这个输出:
这是我的 SQL 代码:
SELECT trk_id,
cur_state
FROM trk_id_def
Where (trk_id like 'TPA12%' )
ORDER BY trk_id
如何让列反映 MF、CH_A、CH_B 和 CH_C 及其各自的值?
您在找这样的东西吗?
select substr(trk_id, 1, 5),
max(case when trk_id like '%A' then cur_state end) as state_a,
max(case when trk_id like '%B' then cur_state end) as state_b,
max(case when trk_id like '%C' then cur_state end) as state_c
from t
group by substr(trk_id, 1, 5)
@Med2020 您的查询应该可以正常工作。请查看下面的示例,让我知道它失败的数据。我已经更改了 M 列的条件。
架构和插入语句:
create table trk_id_def( TRK_ID varchar(50),CUR_STATE varchar(50));
insert into trk_id_def values('TPA12','PROD');
insert into trk_id_def values('TPA12-A','PROD');
insert into trk_id_def values('TPA12-B','NM');
insert into trk_id_def values('TPA12-C','NM');
查询:
select substr(trk_id, 1, 5) as Misti,
max(case when trk_id =substr(trk_id, 1, 5) then cur_state end) as M,
max(case when trk_id like '%-A' then cur_state end) as CH_A,
max(case when trk_id like '%-B' then cur_state end) as CH_B,
max(case when trk_id like '%-C' then cur_state end) as CH_C
from trk_id_def Where (trk_id like 'TPA12%' )
group by substr(trk_id, 1, 5);
输出:
MISTI
M
CH_A
CH_B
CH_C
TPA12
PROD
PROD
NM
NM
dbhere
我是 SQL 的新手,想知道是否有人可以帮助我解决这个小问题。我试图让我的输出如下所示:
但我目前得到这个输出:
这是我的 SQL 代码:
SELECT trk_id,
cur_state
FROM trk_id_def
Where (trk_id like 'TPA12%' )
ORDER BY trk_id
如何让列反映 MF、CH_A、CH_B 和 CH_C 及其各自的值?
您在找这样的东西吗?
select substr(trk_id, 1, 5),
max(case when trk_id like '%A' then cur_state end) as state_a,
max(case when trk_id like '%B' then cur_state end) as state_b,
max(case when trk_id like '%C' then cur_state end) as state_c
from t
group by substr(trk_id, 1, 5)
@Med2020 您的查询应该可以正常工作。请查看下面的示例,让我知道它失败的数据。我已经更改了 M 列的条件。
架构和插入语句:
create table trk_id_def( TRK_ID varchar(50),CUR_STATE varchar(50));
insert into trk_id_def values('TPA12','PROD');
insert into trk_id_def values('TPA12-A','PROD');
insert into trk_id_def values('TPA12-B','NM');
insert into trk_id_def values('TPA12-C','NM');
查询:
select substr(trk_id, 1, 5) as Misti,
max(case when trk_id =substr(trk_id, 1, 5) then cur_state end) as M,
max(case when trk_id like '%-A' then cur_state end) as CH_A,
max(case when trk_id like '%-B' then cur_state end) as CH_B,
max(case when trk_id like '%-C' then cur_state end) as CH_C
from trk_id_def Where (trk_id like 'TPA12%' )
group by substr(trk_id, 1, 5);
输出:
MISTI | M | CH_A | CH_B | CH_C |
---|---|---|---|---|
TPA12 | PROD | PROD | NM | NM |
db