sql >> Database teknologi >  >> RDS >> Sqlserver

Vil du generere en opdaterings-SQL for at ændre rækkefølgen af ​​en vare?

Du behøver ikke engang ID parameter.

UPDATE
  yourTable
SET
  Order = (CASE WHEN     Order = @oldOrder THEN @newOrder
                WHEN @newOrder > @oldOrder THEN Order - 1
                                           ELSE Order + 1 END)
WHERE
     Order BETWEEN @oldOrder AND @newOrder
  OR Order BETWEEN @newOrder AND @oldOrder
  • Alt over eller under de oprindelige og nye positioner skal ikke ændres.
  • Alt andet bevæger sig op eller ned én.
  • Med undtagelse af det originale element, der flytter til den nye position.



  1. Hvordan forhindrer man nogen i at gå tilbage til forrige side?

  2. Hent ConnectionString fra app.config i c#

  3. Konverter Oracle-forespørgselsoutput til json (Oracle / NodeJS)

  4. Deadlock fejlfinding i SQL Server 2008