【问题标题】:Oracle SQL Converting Rows Into Column for similar fieldsOracle SQL将类似字段的行转换为列
【发布时间】:2021-11-24 16:24:05
【问题描述】:

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

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

输出

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

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

【问题讨论】:

    标签: sql oracle pivot transpose


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2020-07-01
      • 2020-02-23
      • 1970-01-01
      相关资源
      最近更新 更多