查询添加行直到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