2015-04-07 101 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