繁体   English   中英

Oracle SQL 将类似字段的行转换为列

[英]Oracle SQL Converting Rows Into Column for similar fields

我有一个包含两个字段的表

EMPLID | STDNT_GROUP
A1       H025
A1       M050
A1       T100
A2       H070
A2       M075
A3       H100
A3       T025

Output

Emplid |  Hos  | Tut | Mess
A1       H025    T100  M050
A2       H070    NULL  M075
A3       H100    T025  NULL

我想将行转换为列。 如果一个 emplid 的组以 H 开头,然后是 Hos,以 T 开头,然后是 Tut,如果是 M,则为 Mess。 这可能使用 sql

Select emplid, max(case when substr(STDNT_GROUP,1) like 'H%' then STDNT_GROUP else ' ' end ) Hostel, 
max(case when substr(STDNT_GROUP,1) like 'T%' then STDNT_GROUP else ' '  end ) Tuition, 
max(case when substr(STDNT_GROUP,1) like 'M%' then STDNT_GROUP  else ' ' end ) Mess 
from table a
group by emplid

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM