商品SKU mySQL 列转行_SQL行列转换——商品SKU颜色尺码合并

efa3ddc269873d79335168559b44e99c.png

81a0a07e107010269cc83d27bf46a134.png

create procedure proc_GoodsSkuCombine

as

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GoodsTemp1]') AND type in (N'U'))

DROP TABLE [dbo].GoodsTemp1

;with roy as

(select Number,ColorName,SizeName,row=row_number()over(partition by Number,ColorName order by Number,ColorName ) from V_JSKC_BySKU)

,Roy2 as

(select Number,ColorName,

cast(SizeName as nvarchar(100))SizeName,row from Roy where row=1

union all

select a.Number,a.ColorName,

cast(b.SizeName+','+a.SizeName as nvarchar(100)),a.row from Roy a join Roy2 b

on a.Number=b.Number and a.ColorName=b.ColorName and a.row=b.row+1)

select Number,ColorName,SizeName

into GoodsTemp1

from Roy2 a

where row=(select max(row) from roy where Number=a.Number and ColorName=a.ColorName) order by Number,ColorName option (MAXRECURSION 0)

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GoodsTemp2]') AND type in (N'U'))

DROP TABLE [dbo].GoodsTemp2

;with roy as

(select Number,ColorName,SizeName,row=row_number()over(partition by Number order by Number ) from GoodsTemp1)

,Roy2 as

(select Number,SizeName,

cast(ColorName as nvarchar(100))ColorName,row from Roy where row=1

union all

select a.Number,a.SizeName,

cast(b.ColorName+','+a.ColorName as nvarchar(100)),a.row from Roy a join Roy2 b

on a.Number=b.Number and a.row=b.row+1)

select Number,ColorName,SizeName

into GoodsTemp2

from Roy2 a

where row=(select max(row) from roy where Number=a.Number ) order by Number option (MAXRECURSION 0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值