以参数@skuids 逗号隔开的数组为参数,取出多个订单id--orderscode,
蓝色部分是定义取数据的地方,下面进行in删除。
不要直接用
set @orderscode=(
select a.orders_code
FROM
orders a
INNER JOIN orders_row b ON a.orders_code = b.orders_code
AND b.sku_code IN (select col from SplitIn(@skuids,',')) GROUP BY a.orders_code ;
select @orderscode)
这样取会报错一个多个,< > ,=等错误。
当然了如果确定只能取出一个可以,多个用下面的方式
CREATE PROCEDURE proc_sukdelete @skuids AS VARCHAR (max)
DECLARE @orderscode varchar(8000)
set @orderscode=''select @orderscode=@orderscode+','+a.orders_code
FROM
orders a
INNER JOIN orders_row b ON a.orders_code = b.orders_code
AND b.sku_code IN (select col from SplitIn(@skuids,',')) GROUP BY a.orders_code ;
select @orderscode
DELETE a
FROM store_point a
WHERE a.orders_code IN(select col from SplitIn(@orderscode,',')) ;