2012-03-23 86 views
-1

如何在SQL Server中正確執行以下查詢!如何在表上選擇不同的記錄

上運行該查詢

select distinct * from dbo.TableA 

它給了我錯誤的結果。它讓我重複記錄以及

對不起球員,我可能會問一個很簡單的問題..但我GOOGLE了很多,但沒得到任何卓見成效......

回答

2

它沒有給你重複記錄 - 這些「重複」中的每一個都會有一些與其他記錄上的等價值不同的值。

如果你只想看到特定列的不同組合值,明確在查詢中指定的那些列 - 如:

select distinct columnA, columnB, columnC from dbo.TableA 
+0

這是我的例子 表A '1 1' '1 1' 'b 1 2' 選擇不同*會給我所有的結果作爲:: '1 1' ' 1 1' 'b 1 2' 這真的應該給作爲 '1 1' 'b 1 2' – Matthew 2012-03-23 11:05:15

+0

@Matthew:看我更新的答案 - 如果你只選擇那些三個具體欄目,你會只有'1 1''b 1 2'。 – 2012-03-23 11:12:14

0
SELECT DISTINCT column_name(s) FROM table_name 
+0

如果我不想提及列名會怎麼樣?因爲我的桌子上有300列 – Matthew 2012-03-23 11:04:13

0

如果沒有主鍵字段,然後查詢返回重複的記錄否則你需要使用像:

select distinct column_name from table_name 
0

使用DISTINCT獲取重複行是不可能的,因爲這是唯一的功能:刪除重複項。請記住,如果你的桌子上有PK,那麼你所有的行都會有所不同。如果你沒有PK(這聽起來不對),那麼你可能有一個日期時間字段,並且只能記錄日期,但不是時間?

相關問題