2015-04-07 45 views
1

例子: 當我輸入:如何添加空白行時選擇查詢SQL

select number, city from user 

中得到的結果是3行。如何select我可以自動填充8行?如果使用循環呢?

所需的輸出:

如果3行然後有5個空行,

如果4行再有4個空行,等等。

+7

你爲什麼要這麼做?由於一些表示邏輯要求?數據庫旨在返回實際數據,而不是處理演示文稿或其他要求。中間件用於處理這個問題。 –

+1

你可以用'Union'來做到這一點,但你可能不應該這樣做。空白行應該用於什麼目的? – TJennings

+0

我聞到一項家庭作業。 –

回答

2

雖然我不理解的原因這個任務的,反正你可以不喜歡它:

DECLARE @t TABLE (ID INT) 
DECLARE @c INT = 8 

INSERT INTO @t 
VALUES (1), 
     (2), 
     (3); 
WITH cte 
      AS (SELECT 1 AS rn 
       UNION ALL 
       SELECT rn + 1 
       FROM  cte 
       WHERE rn <= @c 
      ) 
    SELECT TOP (@c) 
      * 
    FROM (SELECT ID 
       FROM  @t 
       UNION ALL 
       SELECT NULL 
       FROM  cte 
      ) t 
    ORDER BY ID DESC  

輸出:

ID 
3 
2 
1 
NULL 
NULL 
NULL 
NULL 
NULL