一个sql语句,实现在查询结果中显示每5行后加一空白行

本文介绍了一段SQL脚本,该脚本首先检查并删除存在的表[tb],然后创建新的表并插入多条记录。接着通过复杂的WITH语句进行数据查询,使用ROW_NUMBER()函数来分组数据,并引入辅助字段进行排序,最终展示了一个特定的数据排列示例。
摘要由CSDN通过智能技术生成

If not object_id('[tb]') is null
    Drop table [tb]
Go
Create table [tb]([ID] int,[P_TITLE] nvarchar(6),[P_COMPANY] nvarchar(3),[P_TIME] Datetime)
Insert tb
Select 1,'aaaaaa','公司1','2009-08-05' union all
Select 2,'bbbbbb','公司1','2009-08-05' union all
Select 3,'vvvvvv','公司1','2009-08-05' union all
Select 4,'cccccc','公司2','2009-08-05' union all
Select 5,'dddddd','公司2','2009-08-05' union all
Select 6,'eeeeee','公司2','2009-08-05' union all
Select 7,'ffffff','公司3','2009-08-05' union all
Select 8,'gggggg','公司3','2009-08-05' union all
Select 9,'hhhhhh','公司3','2009-08-05'
Go
--Select * from tb

-->SQL查询如下:
;with t as
(
  select rn=(row_number()over(order by id)-1)/5,*,px=0
  from tb
  union all
  select (id-1)/5,null,null,null,null,1
  from tb
  group by (id-1)/5
)
select [ID],[P_TITLE],[P_COMPANY],[P_TIME]
from t
order by rn,px
/*
ID          P_TITLE P_COMPANY P_TIME
----------- ------- --------- -----------------------
1           aaaaaa  公司1       2009-08-05 00:00:00.000
2           bbbbbb  公司1       2009-08-05 00:00:00.000
3           vvvvvv  公司1       2009-08-05 00:00:00.000
4           cccccc  公司2       2009-08-05 00:00:00.000
5           dddddd  公司2       2009-08-05 00:00:00.000
NULL        NULL    NULL      NULL
6           eeeeee  公司2       2009-08-05 00:00:00.000
7           ffffff  公司3       2009-08-05 00:00:00.000
8           gggggg  公司3       2009-08-05 00:00:00.000
9           hhhhhh  公司3       2009-08-05 00:00:00.000
NULL        NULL    NULL      NULL

(11 行受影响)
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值