我希望编写一个查询,只为下拉列表返回不同的结果。注意:我有很多表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
答案 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