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

Một bản cập nhật với nhiều điều kiện. SQL 2008

Bạn có thể tìm ra người dùng nào có mức độ ưu tiên cao nhất bằng cách sử dụng row_number() . SQL Server cho phép bạn thực hiện việc này trong một CTE có thể cập nhật, vì vậy truy vấn trông giống như sau:

with toupdate as (
      select t.*,
             row_number() over (partition by projectid
                                order by (case when userid = 1 then 1
                                               when userid = 2 then 2
                                               when userid = 3 then 3
                                               else 4
                                          end
                                         )
                               ) as PriorityForLead
      from table t
     )
update toupdate
    set RoleId = 11
    where PriorityForLead = 1;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Công tắc bảng thay đổi hoạt động như thế nào trên máy chủ sql?

  2. Chèn giá trị tiếng Do Thái trong SQL Server 2008

  3. SSIS xuất dữ liệu sang tệp phẳng hiển thị dấu ngoặc kép dưới dạng ký tự thập lục phân

  4. Làm cách nào để liên kết tham số ISO8601 TSQL DATETIME với PDO?

  5. khóa chính và chỉ mục sql