查询添加行直到10的倍数

我需要一个带有行号(可能使用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来获取所有列。

以上是 查询添加行直到10的倍数 的全部内容, 来源链接: utcz.com/qa/259232.html

回到顶部