从下拉列表的特定列中选择DISTINCT

时间:2014-07-07 17:05:38

标签: c# sql sql-server join subquery

我希望编写一个查询,只为下拉列表返回不同的结果。注意:我有很多表FULL OUTER JOINED在一起,所以当我运行SELECT DISTINCT查询时,它仍然给我所有不同的行,但我希望列数据是不同的。

示例:

ColA    ColB
A        a
A        a
A        c
B        b     
B        a
C        b    

DropDown List1结果(对于ColA):

 DropDownList
     A
     B
     C

DropDown List2结果(对于ColB):

 DropDownList
     a
     b
     c

1 个答案:

答案 0 :(得分:3)

在一个查询中将两个字段组合在一起没有逻辑上的理由。所以你最好只使用两个单独的查询。

SELECT DISTINCT ColA FROM MyTable 

SELECT DISTINCT ColB FROM MyTable

在使用 mbeckish 的建议(加入行号)时,您可以执行以下操作(SQL Fiddle):

SELECT m.ColA, ms.ColB
FROM
(
  SELECT ColA, ROW_NUMBER() OVER(ORDER BY ColA) AS Row
  FROM 
  (
    SELECT DISTINCT ColA
    FROM MyTable
  ) s 
) m
FULL OUTER JOIN
(
  SELECT ColB, ROW_NUMBER() OVER(ORDER BY ColB) AS Row 
  FROM 
  (
    SELECT DISTINCT ColB
    FROM MyTable
  )  ss
) ms ON m.Row = ms.Row