Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Актуализиране на заявка в SQL Server чрез JOINS

Тъй като идентификаторът на потребителя е един и същ във всички редове, получавате една и съща стойност за възрастта.
Това може да се реши с помощта на CTE , като това:

;with cte as 
(
  select id, userid, age, ROW_NUMBER() OVER(order by id) rn
  FROM #tempMock
)
UPDATE t1
SET    t1.age = t2.age
FROM   #temp t1
INNER JOIN cte t2 ON t1.userid = t2.userid and t1.id = t2.rn+1;

вижте fiddle тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намеря име за вход, потребителско име за база данни или роли на потребител на домейн на sqlserver, който няма собствено име за вход?

  2. Как да използвате изявление за случай за условно форматиране в заявка за избор - SQL Server / TSQL урок, част 116

  3. Срокове за събиране на аларми от Spotlight Cloud

  4. Най-добрият(ите) индекс(и) за използване за оператор ИЛИ в SQL Server

  5. Заявката работи бавно с израз за дата, но бързо с низов литерал