2

我正在寻找一个查询/一组 SQL 查询,它将为我提供具有“非空/非空字段的最大数量”的记录的记录 ID。
我正在研究count()max()功能,但他们似乎正在解决同一列的问题,但不是同一行(这就是我正在寻找的)。

请帮忙。

4

1 回答 1

1

你可以order by非空字段的数量:

select  top 1 Record_ID
from    YourTable
order by
        case when isnull(col1,'') <> '' then 1 else 0 end +
        case when isnull(col2,'') <> '' then 1 else 0 end +
        case when isnull(col3,'') <> '' then 1 else 0 end +
        ...
        case when isnull(colN,'') <> '' then 1 else 0 end

这是 SQL Server 语法。如果您使用的是其他数据库,请修改您的问题。

于 2012-12-03T10:58:07.443 回答