小张小张两眼放光 2022-10-10 17:38 采纳率: 0%
浏览 40

如何将多个select语句通过union all连接查询出的结果横向展示

SELECT t.* from (
(SELECT COUNT() AS isuser FROM dbo.[User] WHERE PhoneNumber='13321177023')
UNION ALL
(SELECT COUNT(
)AS isvipuser FROM dbo.VipUser WHERE Phone='13321177023')
UNION ALL
(SELECT COUNT(*) AS isAcadeuser FROM dbo.AcademyUserInfo WHERE PhoneNumber='13321177023')
) t

  • 写回答

4条回答 默认 最新

  • Java大魔王 2022-10-10 17:44
    关注

    给每一个查询都加一个标识1,然后根据这个表示聚合后,取个max就相当于行转列了

    select max(isuser) as isuser, max(isvipuser ) as isvipuser, max(isAcadeuser ) as isAcadeuser 
    from(
    SELECT t.* from (
    (SELECT 1 as flag, COUNT() AS isuser FROM dbo.[User] WHERE PhoneNumber='13321177023')
    UNION ALL
    (SELECT 1 as flag, COUNT()AS isvipuser FROM dbo.VipUser WHERE Phone='13321177023')
    UNION ALL
    (SELECT 1 as flag, COUNT(*) AS isAcadeuser FROM dbo.AcademyUserInfo WHERE PhoneNumber='13321177023')
    ) t
    )tt group by tt.flag
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月10日