Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tạo SQL Cập nhật để thay đổi thứ tự của một mặt hàng?

Bạn thậm chí không cần ID tham số.

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
  • Mọi thứ ở trên hoặc dưới vị trí ban đầu và vị trí mới không cần phải thay đổi.
  • Mọi thứ khác di chuyển lên hoặc xuống một cái.
  • Ngoại trừ mặt hàng ban đầu, mặt hàng đó sẽ chuyển đến vị trí mới.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xoay các cột động, không có sự tổng hợp

  2. MultipleActiveResultSets =Đúng hay nhiều kết nối?

  3. Máy chủ SQL:sys.master_files so với sys.database_files

  4. Danh sách sao lưu kế hoạch bảo trì SQL Server 2008

  5. Chuyển đổi tệp SQL2008 RDL sang SQL2005