2010-10-11 46 views
4

是否有可能使用select *來區分或輕鬆寫出具有相同效果的東西?不同於select *

我需要從表中選擇具有不同值的所有列,但在select子句中列出所有列會因爲列數超過20而破壞神經!

+1

您的表沒有主鍵嗎?你怎麼得到重複的行? – 2010-10-11 10:55:13

+4

超過20?呸!當我年輕的時候,我們不得不手工列出有100列的桌子,在雪地裏,赤腳上山。嚴重:這真的太可怕了嗎?大多數現代IDE都有一種轉儲列名的方法,更重要的是,你只需要寫幾次即可。 (另外,調試一個'SELECT *'查詢打破了相關的功能,因爲其他人添加了一列並不美觀。) – Piskvor 2010-10-11 10:57:53

+1

也許這並不可怕,但據我所知,計算的目的是爲了讓事情變得簡單。 。和我所學到的,如果你爲一項簡單的任務寫了幾十行,如果可能有更簡單的方法! :D – jaana 2010-10-13 05:28:11

回答

3

這應該工作:

SELECT DISTINCT * FROM TABLE_NAME 
+1

會工作。但請記住:不是很快! – 2010-10-11 10:53:54

7

在Microsoft SQL Server,你可以寫:

select distinct * from MyTable 

然而,它被認爲是 「最佳實踐」 明確指定列,部分原因是因爲它提高了查詢的性能,還可以保護自己免受數據庫架構未來發生變化時可能出現的故障

1

使用此查詢:

SELECT DISTINCT Employee, Rank 
FROM Employees 
0

在「select」之後立即添加「distinct」關鍵字來完成工作。 例如:

SELECT DISTINCT * FROM TABLE_NAME