我有一个表有多个行,用于列出分配给该CARD_ID的不同角色的不同CARD_ID。我想要一个查询为每个不同的CARD_ID创建一行,该CARD_ID有多列列出不同的角色。参见图像,例如当前表格。重复突出显示。
所以,我想为CARD_ID 1-10提供一行,每一行都有Cardholder,Reconciler和Approver。
如果特定的CARD_ID没有其中一个角色,我可以将该字段设为null或使用其他类型的指示符。
答案 0 :(得分:0)
有条件聚合的一种方法:
select card_id,
max(iif(role = 'Reconciler', col, NULL)) as reconciler_col,
max(iif(role = 'Approver', col, NULL)) as approver_col,
max(iif(role = 'Cardholder', col, NULL)) as cardholder_col
from t
group by card_id;
col
是您想要转动的列。您只需向max(iif . . .)
添加更多select
即可添加多个列。