2
两列,第一列是分开的,第二列没有那么多。从不完全不同的结果中返回不同的行
Col1 ---- Col2
1 ---- abc
1 ---- abc (123)
2 ---- def
2 ---- def (324)
等
我需要带回重复的记录,但只带有较长col2的的人。
我试过使用CONTAINS函数,但我的表没有全文索引。
两列,第一列是分开的,第二列没有那么多。从不完全不同的结果中返回不同的行
Col1 ---- Col2
1 ---- abc
1 ---- abc (123)
2 ---- def
2 ---- def (324)
等
我需要带回重复的记录,但只带有较长col2的的人。
我试过使用CONTAINS函数,但我的表没有全文索引。
一种选择是由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
SELECT col1 , col2 FROM (SELECT col1 , col2 , Rank() OVER (PARTITION BY col1 ORDER BY col2 DESC) row FROM dbo.table ) t WHERE row = 1
您也可以尝试这个..