2013-05-27 155 views
2

兩列,第一列是分開的,第二列沒有那麼多。從不完全不同的結果中返回不同的行

Col1 ---- Col2 
1 ---- abc 
1 ---- abc (123) 
2 ---- def 
2 ---- def (324) 

我需要帶回重複的記錄,但只帶有較長col2的的人。

我試過使用CONTAINS函數,但我的表沒有全文索引。

回答

2

一種選擇是由col2的的LEN()使用使用ROW_NUMBER()排序:

SELECT * 
FROM (
    SELECT Col1, Col2, ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY LEN(Col2) DESC) rn 
    FROM YourTable 
) t 
WHERE rn = 1 
0
 


SELECT col1 , 
     col2 
FROM (SELECT col1 , 
        col2 , 
        Rank() OVER (PARTITION BY col1 ORDER BY col2 DESC) row 
      FROM  dbo.table 
     ) t 
WHERE row = 1 



您也可以嘗試這個..