sql >> Databasteknik >  >> RDS >> Sqlserver

Generera en SQL-uppdatering för att ändra ordningen på ett objekt?

Du behöver inte ens 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
  • Något över eller under de ursprungliga och nya positionerna behöver inte ändras.
  • Allt annat rör sig uppåt eller nedåt.
  • Förutom originalobjektet, som flyttas till den nya positionen.



  1. Hur returnerar jag en lista med värden istället för en sträng när jag frågar efter en Oracle-databas med XPath?

  2. PostgreSQL, konfigurera om befintlig tabell, ändra primärnyckeln till typ=seriell

  3. Skriv ut text i Oracle SQL Developer SQL Worksheet-fönster

  4. Hur använder du mvc-mini-profiler med Entity Framework 4.1