首页 > 解决方案 > 连续显示字段

问题描述

我有一个多选查询

SELECT C.CATEGORIES_NAME 
FROM CATEGORIES AS C 
WHERE CATEGORIES_ID = 1

UNION

SELECT L.LOCATION_TYPE_NAME 
FROM LOCATIONS_TYPE AS L 
WHERE LOCATION_TYPE_ID = 2 

UNION

SELECT S.SUBSCRIPTION_TYPE 
FROM SUBSCRIPTIONS AS S 
WHERE SUBSCRIPTION_ID = 3

他给了我结果:

 CATEGORIES_NAME |
------------------
       free      |
       Plaza     |
      Mobiles    |

我需要得到这个结果:

 CATEGORIES_NAME | LOCATION_TYPE_NAME | SUBSCRIPTION_TYPE |
-----------------------------------------------------------
       free      |       Plaza        |      Mobiles      |

如何才能做到这一点?

标签: sqlpostgresqlpivotcrosstab

解决方案


我认为最简单的解决方案是基本上放在SELECT查询之前:

SELECT (SELECT C.CATEGORIES_NAME 
        FROM CATEGORIES AS C 
        WHERE CATEGORIES_ID = 1
       ) as CATEGORIES_NAME,
       (SELECT L.LOCATION_TYPE_NAME 
        FROM LOCATIONS_TYPE AS L 
        WHERE LOCATION_TYPE_ID = 2
       ) as LOCATION_TYPE_NAME,
       (SELECT S.LOCATION_TYPE_NAME 
        FROM SUBSCRIPTIONS AS S 
        WHERE SUBSCRIPTION_ID = 3
       ) as LOCATION_TYPE_NAME;

推荐阅读