避免在SELECT中重复

时间:2018-05-25 14:38:39

标签: sql

可能是一个非常简单的问题,但我现在还没有得到它。开始了: 我有一张桌子

id | lang1  | sth | sth2
1  | "one"  | "x" | "y"
1  | "one"  | "x" | "y"
2  | "two"  | "y" | "z"
1  | "one"  | "x" | "y"
3  | "three"| "z" | "a"

我需要一个SELECT,它给了我一切没有重复的东西。

1  | "one"  | "x" | "y"
2  | "two"  | "y" | "z"
3  | "three"| "z" | "a"

所以可能像(伪代码,不起作用,只是为了这个想法)

SELECT id, lang1, sth, sth2 FROM tbl GROUP BY id, lang1

OR

SELECT DISTINCT(id, lang1), sth, sth2 FROM tbl

谢谢, 贝恩德

2 个答案:

答案 0 :(得分:6)

简单明了DISTINCT会做

SELECT DISTINCT id, lang1, sth, sth2
FROM tbl

DISTINCT(id, lang1)无法正常工作,因为DISTINCT是关键字,而非功能。 SQL中的函数调用有括号。

答案 1 :(得分:3)

DISTINCT适用于所有expression/column,因此请使用

select distinct id, lang1, sth, sth2
from table t;

但是,只要您必须找到相同的值,就会应用GROUP BY子句

所以,你可以表达

select id, lang1, sth, sth2
from table t
group by id, lang1, sth, sth2;