2

两列,第一是不同的,第二不是那么多。

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

ETC

我需要带回不同的记录,但只带回 Col2 较长的记录。

我试过使用 CONTAINS 函数,但我的表没有全文索引。

4

2 回答 2

2

一种选择是使用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
于 2013-05-27T01:44:20.880 回答
0

选择 col1 ,
        col2
从 ( 选择 col1 ,
                    col2 ,
                    Rank() OVER ( PARTITION BY col1 ORDER BY col2 DESC ) 行
          FROM dbo.table
        ) 吨
WHERE 行 = 1



你也可以试试这个..

于 2013-05-27T09:00:13.657 回答