0

原表

+-- Col 1 --+-- Col 2 --+
+--   1   --+--   a   --+
+--   1   --+--   b   --+
+--   1   --+--   c   --+
+--   2   --+--   d   --+
+--   3   --+--   e   --+
+--   3   --+--   f   --+
+-----------------------+

结果 :

+-- Col 1 --+-- Col 2 --+
+--   1   --+--   a   --+
+--   2   --+--   d   --+
+--   3   --+--   e   --+
+-----------------------+

知道如何区分表格吗?

4

4 回答 4

1

“DISTINCT”适用于结果集中的每一列。

“GROUP BY”将提供您需要的结果,但您需要考虑“col2”在您的结果集中是否有任何实际意义。

 SELECT col1, min(col2) as col2
      FROM T
     GROUP BY col1
于 2012-05-16T04:28:11.293 回答
0
SELECT t.Col1, t.Col2
FROM T t
WHERE NOT EXISTS(SELECT *
                 FROM T s
                 WHERE t.Col1 = s.Col1 AND t.Col2 > s.Col1)
于 2012-05-16T04:21:18.957 回答
0

col1 中的相同值在 col2 中没有相同的值,因此如果您选择两列,则 DISTINCT 无法生成结果。

于 2012-05-16T04:21:49.370 回答
0

如果使用 SQL Server,表名为 TEST,则可以在 T-SQL 中使用 CROSS APPLY,如下所示:

SELECT DISTINCT Col1, TEST2.Col2 FROM TEST
CROSS APPLY (SELECT TOP 1 Col2 FROM TEST TEST2
        WHERE TEST2.Col1 = TEST.Col1) TEST2
于 2012-05-16T04:37:44.237 回答