选择Distinct Sql Server Question

时间:2009-11-02 12:28:35

标签: sql sql-server

我有以下表结构。

 A | B | C

我想拉A列和B列,其中A和B的所有结果都是不同的。我希望忽略C列。我看到整行的distinct关键字,而不是返回的列。我有什么想法可以做到这一点吗?

4 个答案:

答案 0 :(得分:3)

不是这样。 DISTINCT查看您指定的任何列。所以对你来说,SELECT DISTINCT A, B FROM table

我更喜欢GROUP BY:SELECT A, B FROM table GROUP BY A, B

答案 1 :(得分:2)

你的理解是错误的。 DISTINCT不会查看整行。你尝试过这样的事吗?

SELECT DISTINCT(A, B) FROM t WHERE ...

答案 2 :(得分:0)

SELECT DISTINCT不查看数据库中的整行,只查看请求的列。所以你可以做SELECT DISTINCT a,b FROM mytable,它将完全忽略列c。

答案 3 :(得分:0)

选择不同的a,b,row_number()over(按a的顺序划分)作为rn到#T1中 (从表中选择不同的b,a)d

更新#T1 设置a = null其中rn> 1

从#T1

中选择a,b