Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pembaruan dengan beberapa kondisi. SQL 2008

Anda dapat mengetahui pengguna mana yang memiliki prioritas tertinggi dengan menggunakan row_number() . SQL Server memungkinkan Anda melakukan ini dalam CTE yang dapat diperbarui, sehingga kuerinya terlihat seperti ini:

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. SQL Server setara dengan MySQL's EXPLAIN

  2. Bagaimana cara menambahkan kolom dinamis ke tabel yang ada

  3. Mekanisme enkripsi seperti apa yang ditawarkan SQL Server 2008 Standard?

  4. apa masalahnya dengan AttachDbFilename?

  5. Kesalahan fatal:Panggilan ke fungsi yang tidak ditentukan sqlsrv_connect()