如何將這些多行變成一行? N和Y是bool值。T-Sql:將多行變爲一行
Id IsPnt IsPms, IsPdt
1 N Y N
1 N Y N
1 Y N N
這個
Id IsPnt IsPms, IsPdt
1 Y Y N
編輯:
產生的結果集看起來像這樣
select b.id,
CASE mpft.PlanIndCd WHEN 'PBMN' THEN 1 ELSE 0 END AS IsPnt,
CASE mpft.PlanIndCd WHEN 'PBMT' THEN 1 ELSE 0 END AS IsPbt,
CASE mpft.PlanIndCd WHEN 'PBMS' THEN 1 ELSE 0 END AS IsPms
from vw_D_SomveViewName pb
-- bunch of joins
where mpft.PlanIndCd in ('HANR', 'PBMN','PBMT','PBMS','HAWR')
不能使用'MIN'或'MAX'如果列'IsPnt','IdPms'和'IsPdt'的數據類型是'BIT'。那麼,op更新了他的問題,並顯示這些列實際上並不是「BIT」,因此,現在取消了downvote並立即投入了它 – Lamak
@Lamak我知道。但是所示的值是'Y'和'N'。 OP需要澄清數據類型,如果它是BIT,那麼我刪除這個答案。 –
他/他最初說'N'和'Y'values是布爾值:* N和Y是bool值*。但在此之後,他/他顯示他/他實際上正在計算這些值爲'CASE'表達式中的'1'和'0',所以您的答案完全正確 – Lamak