2015-12-10 53 views
1

我有一個視圖和視圖名稱是my_view其中有下面的示例數據,如果RegistrationId將重複的手段,選擇用戶的行的頂部基於RegistrationId的詳細信息。我需要同一用戶的頂部行RegistrationId使用SQL查詢(我需要SQL選擇查詢)

我查看詳細資料。

 
Email     Qualification  RegistrationId 
[email protected]  MCA     101 
[email protected]  BCA     101 
[email protected]  MBA     102 

我需要的結果應該是。

Email     Qualification  RegistrationId 
[email protected]  MCA     101 
[email protected]  MBA     102 
+0

'選擇頂部行「基於哪一列?你有身份專欄/創建日期嗎? – lad2025

回答

1

根據註冊ID就可以開始使用ROW_NUMBER

相關結果把這段代碼在你的瀏覽

declare @Table1 TABLE 
    (Email varchar(17), Qualification varchar(3), RegistrationId int) 
; 

INSERT INTO @Table1 
    (Email, Qualification, RegistrationId) 
VALUES 
    ('[email protected]', 'MCA', 101), 
    ('[email protected]', 'BCA', 101), 
    ('[email protected]', 'MBA', 102) 
; 

Select查詢

Select Email, Qualification, RegistrationId from (
select *,ROW_NUMBER()OVER(PARTITION BY RegistrationId ORDER BY RegistrationId)RN from @Table1)T 
WHERE T.RN = 1 
+0

'ORDER BY RegistrationID'這將如何確保它會得到'MCA'而不是'BCA'? – lad2025

+0

@ lad2025它給出了確切的結果集他想要什麼我已經測試,在我的數據庫 – mohan111

+0

偉大的說法。它給出了正確的結果。如果我將有10條記錄與101不同的結果,並且查詢優化器將使用並行執行? – lad2025