Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Generowanie aktualizacji SQL w celu zmiany kolejności towaru?

Nie potrzebujesz nawet ID parametr.

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
  • Wszystko powyżej lub poniżej oryginalnej i nowej pozycji nie musi być zmieniane.
  • Wszystko inne porusza się w górę lub w dół o jeden.
  • Z wyjątkiem oryginalnego elementu, który przesuwa się do nowej pozycji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz zapytanie w SQL Server 2017

  2. Wstaw do... Scal... Wybierz (SQL Server)

  3. Test wydajności MS SQL Server w systemie Linux i Windows w celu wykrycia różnicy

  4. Przechowywane procedury testowania jednostek SQL

  5. kiedy obliczana kolumna zostanie zaktualizowana?