【发布时间】:2018-12-26 18:10:58
【问题描述】:
我正在熟悉一个数据表,其中包含许多用于描述个人工作角色的列。我想返回一个表,在每列中列出表中每列存在的不同值。
我了解如何返回单个列的不同值列表,但我希望我的所有结果都在一个表中,并且彼此相邻。顺序无关紧要。
示例性输入,其中每一行是一名员工:
--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
【问题讨论】:
-
我对您的输入感到困惑。不同的工作角色是该输入中的行,而不是列,对吧?
-
这最好由客户端/显示代码完成,结果是 3 个单独的查询。
-
数据库并没有真正做到这一点,因为一行的整个想法是它上面的所有内容都是相关的。可以这样做,但在 mysql 之类的低端数据库中,它会相当难看,除非您使用的是 MySQL 8/MariaDB10。你确定这是你想要的吗?生成“column_name,column_value”的 2 列输出会更直接
-
你的 DBMS 的版本是多少?
-
@jmabs sql 数据库 可以 做到这一点,但它最终会变得非常复杂、过于复杂和不自然。将不相关的数据显示为相关的数据违反了他们的设计原则。
标签: sql greenplum distinct-values