• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

查询添加行直到10的倍数

sql 来源:PJLG 4次浏览

我需要一个带有行号(可能使用ROW_NUMBER())的列的查询,如果结果是8行(例如)查询应该导致10行的行9和10为空行号除外。如果结果是15行,结果应该是20行,依此类推… 它是正确的?查询添加行直到10的倍数


===========解决方案如下:

通常情况下,应用程序层中会这样做。但是,您可以在SQL中执行此操作:

select t.* 
from table t 
union all 
select nulls.* 
from (select 1 as n union all select 2 union all . . . select 10 
    ) n cross join 
    (select count(*) cnt from table) cnt left join 
    table nulls 
    on 1 = 0 
where 10 * floor(cnt/10) + n.n <= cnt; 

第一个子查询会获取所有数据。第二个获取值为NULL的附加行。它使用带“false”条件的left join来获取所有列。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)