从不完全不同的结果返回不同的行

时间:2013-05-27 01:40:24

标签: sql sql-server sql-server-2008

两列,第一列是distcint,第二列没有那么多。

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

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

我尝试过使用CONTAINS功能,但我的表格没有全文索引。

2 个答案:

答案 0 :(得分: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

答案 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



你也可以尝试这个..