2012-10-19 69 views
0

我想要選擇所有列,但DISTINCT中給出的列名會重複兩次。
對於Intance,從SQL服務器中的Select *語句中取消選擇列

SELECT DISTICT emp_name,* FROM EMPLOYEE 

在上述情況下,柱emp_name是越來越選擇兩次。 我該如何避免它?

UPDATE
如何在所選列應用DISTINCT而返回多個列? 例如:

SELECT DISTINCT(emp_name), emp_address, doj FROM EMPLOYEE 

在上面的例子中DISTINCT必須emp_name被應用。

+0

這應該回答你的問題,它是堆棧溢出的以前的答案。祝你好運。 [SELECT DISTINCT,但所有列] [1] [1]:http://stackoverflow.com/questions/6127338/sql-select-distinct-but-return-all-columns – Landjea

+4

你不應該使用首先選擇*。它是一個SQL反模式。列出你的列。 – HLGEM

+0

如果您在所有列上要求'distinct',您將獲得所有行,而不重複。那是你要的嗎?或者你只想要名字?如果後者不能在「distinct」列表中包含其他列。如果前者只使用'*'或列名作爲上面的註釋。 –

回答

3

與所有列刪除emp_name

SELECT DISTINCT * FROM EMPLOYEE 

或更換*

SELECT DISTINCT emp_name, col1, col2 ... FROM EMPLOYEE 

你也可以使用:

SELECT max(emp_name), emp_address, doj 
FROM EMPLOYEE 
GROUP BY emp_address,doj 
+0

爲什麼-1?也許有些評論? – Parado

+0

不是我的倒退,但可能是因爲'DISTICT'和'DISTINCT'?儘管如此,似乎過於挑剔。 –

+0

@MartinSmith謝謝:)我編輯了這篇文章 – Parado

1

你可能只是不包括兩次在查詢:

SELECT DISTINCT * FROM EMPLOYEE 
+0

'DISTINCT *'不適合我。 –

+2

@PrasadJadhav你是什麼意思'獨特*'「不適合我」?你收到一個錯誤?它沒有給出預期的結果嗎?請儘可能精確,因爲您的問題很不清楚...... –

+0

它將返回所有行,包括重複項。它並沒有標記任何錯誤。 –