用于显示具有最大非空字段数的记录的SQL查询

时间:2012-12-03 10:55:56

标签: sql

我正在寻找一个查询/一组SQL查询,它们会给我记录的记录ID,其中包含“非空/非空字段的最大数量”。
我正在研究count()max()函数,但它们似乎正在为同一列解决问题,但不是同一行(这是我正在寻找的)。

请帮忙。

1 个答案:

答案 0 :(得分: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语法。如果您正在使用其他数据库,请修改您的问题。