首页 > 解决方案 > 返回表列出每列中的不同值

问题描述

我正在熟悉一个数据表,其中包含许多用于描述个人工作角色的列。我想返回一个表,该表在每列中列出了表中每列存在的不同值。

我了解如何为单个列返回不同的列表,但我希望我的所有结果都在一个表中,彼此相邻。顺序无所谓。

示例性输入,其中每一行是一名员工:

--title-- --function-- --class--
analyst    sleeping     professional
analyst    sleeping     ED
analyst    sleeping     MD
scientist  observing    VP
scientist  managing     VP
scientist  researching  associate

预期输出:

--title-- --function-- --class--
analyst   sleeping     professional
scientist observing    ED
          managing     MD
          researching  VP
                       associate

标签: sqlgreenplumdistinct-values

解决方案


您可能会使用这种方法。然而,这种操作与 RDBMS 系统的关系结构相矛盾。

select * from (
    select distinct title, null as function, null as class from Table1
    union
    select distinct null, function, null from Table1
    union 
    select distinct null, null, class from Table1
)
order by title, function, class

推荐阅读