SQL Server 搜索结果两行转化为两列

搜索结果的countt包含了门诊和住院的数量,countt是可变的;怎么把上图转换成下图的样子呢??

SELECT  Referral_Report_Employee_No,
        isnull(住院,0)  住院Count,
        isnull(门诊,0)  门诊Count
FROM    YourTable
PIVOT
(
    count(countt) FOR  Referral_Type IN ([住院], [门诊])
    
) [pivottable]

 

可以用 case when

用PIVOT语句实现。

可以用 SQL Server 的 PIVOT TABLE 功能。具体语法请参考 https://docs.microsoft.com/en-us/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-ver15 

SELECT  Referral_Report_Employee_No,
        住院 AS 住院Count,
        门诊 AS 门诊Count
FROM    TableName
PIVOT
(
    COUNT(Referral_Report_Employee_No)
)
FOR
(
    Referral_Type IN (住院, 门诊)
)

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

我的回答早那么多。应该采纳我的。