不足60筆的時候必須補足空白資料行,也就是說如果只有58筆資料,就必須印2行空白列
同理如果有110筆資料,第一頁印滿60筆後,第二頁只有50筆,就要在印10行空白列
在網路上找了很久,就是找不到我要的答案,只好自己東湊西湊,總算是湊出來了
方法是用UNION ALL連接多個空行,讓資料行數補足成為60的倍數,至於差幾行可以補滿60倍數是用餘除的方法
語法大致如下,以下語法適用SQL SERVER
-- 第一段是主要的查詢結果 SELECT field1, field2, field3 FROM table1 WHERE field4 = 'value' UNION ALL -- 這段跟主要查詢與法相同,只是變成查詢總列數,接著餘除每頁筆數,且查出來的是空白列 SELECT TOP((SELECT COUNT(*) FROM table1 WHERE field4 = 'value') % 60) NULL, NULL, NULL FROM table2 |
再使用UNION ALL把所有NULL資料列補上去,就算完成了
感謝分享,獲益良多!
回覆刪除