2013-05-09 74 views
0

我有一個像這樣的表,我需要編寫一個sql查詢來比較和驗證記錄的順序是否正確。例如:dhoni在第2欄中沒有1,就像每個球員都有自己的不是,我需要編寫一個代碼來驗證沒有球員有相同的否分配給多個球員。並且需要檢查玩家不僅分配給他的天氣。比較oracle中的單個表的兩個字段sql

+-------+-------+ 
|column1|column2| 
+-------+-------+ 
|dhoni |no1 | 
|sachin |no2 | 
|dravid |no3 | 
|dhoni |no1 | 
+-------+-------+ 

注: 編寫一個查詢來驗證表數據前:檢查的Dhoni應該總是讓NO1 column2中,不論重複記錄和秩序,像明智的需要還要檢查其他玩家,無論在任何表中的數據的存在..只是需要驗證的東西..

+1

爲什麼不只是創建唯一的索引或使用主鍵約束, G。 'alter table mytable add primary key(column2);'。 – 2013-05-09 07:01:53

回答

0

請嘗試:

SELECT 
    column2, COUNT(*) TotalCount 
FROM YourTable 
GROUP BY column2 
HAVING COUNT(*) > 1 
ORDER BY COUNT(*) DESC 

其中TOTALCOUNT返回分配多個T數的計數輸入法。 或

select * From( 
    SELECT distinct Column1, Column2, COUNT(*) over (partition by Column2) TotalCount 
    FROM YourTable 
)x 
where TotalCount>1 
1

找到一個用戶有多個號碼。

select column1 from table group by column1 having count(*) > 1; 

找到同樣的更多,然後一個用戶。

select column2 from table group by column2 having count(*) > 1; 
+0

嗨,歡迎來到Stack Overflow。請用4個空格縮進代碼,使其呈現爲代碼。您可以手動執行此操作或突出顯示代碼並單擊'{}'按鈕或ctrl + k。 – Ben 2013-05-09 08:02:24

+0

謝謝。我下次會這樣做。 – 2013-05-09 08:56:45