sql中实现数据多列显示,减少显示行

效果
SELECT ROW_NUMBER() OVER (ORDER BY IncomeAmount) AS Idx, * FROM DailyIncome
在这里插入图片描述
在这里插入图片描述

;WITH CET1 AS
(
	SELECT ROW_NUMBER() OVER (ORDER BY IncomeAmount) AS Idx, * FROM DailyIncome
),
CET2 AS
(
		SELECT ceiling(MAX(idx)/4.0) AS Cnt FROM CET1--如果有28条,这里的值就是7,且只有一行
)
		
SELECT
a.VendorId as VendorId1,a.IncomeDay AS IncomeDay1,a.IncomeAmount AS IncomeAmount1,--1-7
b.VendorId as VendorId2,b.IncomeDay AS IncomeDay2,b.IncomeAmount AS IncomeAmount2,--8-14
c.VendorId as VendorId3,c.IncomeDay AS IncomeDay3,c.IncomeAmount AS IncomeAmount3,--15-21
d.VendorId as VendorId4,d.IncomeDay AS IncomeDay4,d.IncomeAmount AS IncomeAmount4--22-28
FROM
(
SELECT * FROM CET1 a WHERE IDX<=(SELECT cnt FROM CET2 )
) a
LEFT JOIN
(
SELECT * FROM CET1 a --WHERE IDX
) b
ON a.idx=b.idx-(SELECT cnt FROM CET2 )
LEFT JOIN
(
SELECT * FROM CET1 a --WHERE IDX
) c
ON b.idx=c.idx-(SELECT cnt FROM CET2)
LEFT JOIN
(
SELECT * FROM CET1 a --WHERE IDX
) d
ON c.idx=d.idx-(SELECT cnt FROM CET2)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值