2015-04-16 50 views
-1

我需要一個帶有行號(可能使用ROW_NUMBER())的列的查詢,如果結果是8行(例如)查詢應該導致10行的行9和10爲空行號除外。如果結果是15行,結果應該是20行,依此類推... 它是正確的?查詢添加行直到10的倍數

+0

你的努力到目前爲止? –

+0

您特別使用哪種語言? – Martin

+0

哪個dbms? (ROW_NUMBER()不是ANSI SQL ...) – jarlh

回答

0

通常情況下,應用程序層中會這樣做。但是,您可以在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來獲取所有列。