我有一个零件编号表以及许多属性,如:
[Type] [Manager] [Cat. Code] [etc...]
A Dave 123
B Chris 153
C 254
D
我试图列出每个属性的所有唯一值,因此它看起来更像是这样:
[Type] [Manager] [Cat. Code] [etc...]
A Dave 123
B Dave 254
C Dave 153
D Chris 153
但是每当我尝试使用SELECT DISTINCT *等尝试这样做时,它会填满所有列,使它们与最长的列长度相同,根据原始表格水平填充:
eg) array_of_hash = [ { id: 20, name: 'John' }, { id: 30, name: 'Doe'} ]
如何阻止这种情况发生,只保留每列的唯一值,即使它们的长度可能不同?
答案 0 :(得分:2)
我认为你误解了DISTINCT的作用。它会过滤您的结果,以便返回的所有行都是唯一的,而不是每列。根据SELECT中命名的列,您将得到不同的结果。有关示例,请参阅http://www.techonthenet.com/sql_server/distinct.php和"示例 - 使用多个表达式"
对于您的情况,如果您想要每列中的唯一值列表,那么您必须对每列进行单独的查询,例如:
SELECT DISTINCT [Type] FROM [Parts]
SELECT DISTINCT [Manager] FROM [Parts]
...etc
如果您然后并排(根据您的样本所需输出),您只需要将它们复制并粘贴到电子表格或其他内容中。