2012-07-24 53 views
0

我的問題:我想不重複的記錄,在同一張表和多個表中?我如何繼續在SQL中執行此操作?如何過濾sql重複?

讓我解釋一下我曾嘗試:

Select distinct Col1, col2 
from Table 
where order id = 143 

輸出

VolumeAnswer1 AreaAnswer1 heightAnswer1 
VolumeAnswer2 AreaAnswer1 heightAnswer2 
VolumeAnswer3 AreaAnswer1 heightAnswer2 

期望輸出
它顯示了第二個表中重複,但我需要的輸出如:

VolumeAnswer1 AreaAnswer1 heightAnswer1 
VolumeAnswer2     heightAnswer2 
VolumeAnswer3 

我需要多個表相同的情況下,我也找到了同樣的重複。如果它不能在SQL Server中處理,我們如何在.Net中處理它?我使用了多個選擇,但他們用來在單個選擇中進行更改。每列應該在下拉列表綁定...

+0

歡迎的StackOverflow!你能解釋一下你在多個表格中重複記錄的含義嗎(也許通過編輯你的問題)?你可以添加列名到你的輸出/預期輸出嗎?謝謝:-) – Josien 2012-07-24 08:47:11

+0

完整的測試數據和sql語法的測試用例會很好。 – nurettin 2012-07-24 09:38:22

回答

1

像這樣的東西可能是一個良好的開端:

;with cte1 as (
Select col1, cnt1 
From (
    Select 
    col1 
    ,row_number() over(Partition by col1 Order by col1) as cnt1 
    From tbltest) as tbl_sub1 
Where cnt1 = 1 
), cte2 as (
Select col2, cnt2 
From (
    Select 
    col2 
    ,row_number() over(Partition by col2 Order by col2) as cnt2 
    From tbltest) as tbl_sub2 
Where cnt2 = 1 
), cte3 as (
Select col3, cnt3 
From (
    Select 
    col3 
    ,row_number() over(Partition by col3 Order by col3) as cnt3 
    From tbltest) as tbl_sub3 
Where cnt3 = 1 
) 
Select 
col1, col2, col3 
From cte1 
full join cte2 on col1 = col2 
full join cte3 on col1 = col3 

的Sql小提琴顯示例如:http://sqlfiddle.com/#!3/c9127/1

+0

非常感謝,你做了不起的工作..我愛你很多 – Thiyagarajan 2012-08-07 08:18:09