两列,第一是不同的,第二不是那么多。
Col1 ---- Col2
1 ---- abc
1 ---- abc (123)
2 ---- def
2 ---- def (324)
ETC
我需要带回不同的记录,但只带回 Col2 较长的记录。
我试过使用 CONTAINS 函数,但我的表没有全文索引。
两列,第一是不同的,第二不是那么多。
Col1 ---- Col2
1 ---- abc
1 ---- abc (123)
2 ---- def
2 ---- def (324)
ETC
我需要带回不同的记录,但只带回 Col2 较长的记录。
我试过使用 CONTAINS 函数,但我的表没有全文索引。
一种选择是使用Col2的使用ROW_NUMBER()
排序:LEN()
SELECT *
FROM (
SELECT Col1, Col2, ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY LEN(Col2) DESC) rn
FROM YourTable
) t
WHERE rn = 1
选择 col1 , col2 从 ( 选择 col1 , col2 , Rank() OVER ( PARTITION BY col1 ORDER BY col2 DESC ) 行 FROM dbo.table ) 吨 WHERE 行 = 1
你也可以试试这个..