我正在寻找一个查询/一组SQL查询,它们会给我记录的记录ID,其中包含“非空/非空字段的最大数量”。
我正在研究count()
和max()
函数,但它们似乎正在为同一列解决问题,但不是同一行(这是我正在寻找的)。
请帮忙。
答案 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语法。如果您正在使用其他数据库,请修改您的问题。