SQL DISTINCT在选择中间

时间:2018-09-25 16:01:21

标签: sql select distinct

唯一需求是否始终是选择之后的第一行?每次尝试以下操作时,关键字“ DISTINCT”附近都会出现语法错误,如果没有,那么如何在不进行选择的情况下不进行选择的情况下进行独特的工作。

SELECT COLUMN1,
DISTINCT COLUMN 2,
COLUMNM 3

FROM TABLE_1

如果我在第一行中有这样的区别,那就行得通:

SELECT DISTINCT COLUMN2,
COLUMN1,
COLUMN3

FROM TABLE_1

2 个答案:

答案 0 :(得分:4)

DISTINCT子句过滤掉FULL DUPLICATE ROWS。它恰好在SELECT关键字之后,因为它适用于整个行,而不是单个列。您不能在两列之间使用它。

答案 1 :(得分:0)

也许我知道这种混乱来自哪里。虽然 DISTINCT 确实是一个可选的 SELECT 谓词,它作为一个整体作用于每个输出行,它也可以在函数参数中使用(它本身也是一个语句),例如:

SELECT s.id, s.name, GROUP_CONCAT(DISTINCT p.name SEPARATOR "; "), ...
FROM subjects AS s
LEFT JOIN property AS p ON p.subject_id = s.id
LEFT JOIN property2 AS p2 ON p2.subject_id = s.id
...
GROUP BY s.id;

此处 DISTINCT 的目的是不言自明的。但是,如果我们再看看这个内部语句,DISTINCT 是第一位的。 另一个相同类型的示例是 COUNT(DISTINCT column)