sql >> データベース >  >> RDS >> Sqlserver

複数の条件での更新。 SQL 2008

    row_number() を使用して、どのユーザーが最も優先度が高いかを把握できます。 . SQL Server では更新可能な CTE でこれを行うことができるため、クエリは次のようになります。

    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. 非同期I/Oを多用するコードは、非非同期よりも実行速度が遅いのはなぜですか?

    2. (null)値をPIVOTの0出力に置き換える方法

    3. 現在の52週間のアイテムを週ごとにカウントするMySQLクエリ?

    4. 配列のキーと値をMysqlクエリ文字列に渡します