尝试根据优先级更新子优先级,如果优先级为 1,则所有子优先级应根据优先级增加 +1,其中在更新子优先级时还需要顺序
我已经在 MySql 中尝试了以下查询,它按预期工作,但相同的查询在 SQL Server 中不起作用;我在THEN条件中使用的表达式在 SQL Server 中不起作用。
SET @p1=0;
SET @p2=0;
SET @P3=0;
UPDATE line_distro_dtl
SET dc_sub_priority =
CASE
WHEN (dc_priority =1) THEN (select @p1 := @p1 + 1)
WHEN (dc_priority =2) THEN (select @p2 := @p2 + 1)
WHEN (dc_priority =3) THEN (select @p3 := @p3 + 1)
END
WHERE dc_number = 6336
ORDER BY dc_priority ASC, future_sales DESC;
在 SQL Server 中,我声明@p1了,因为我们必须声明标量变量:
Declare @p1 int;
Declare @p2 int;
Declare @p3 int;
SET @p1=0;
SET @p2=0;
SET @P3=0;
如何在 SQL Server 2019 中实现上述查询?