Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Supprimer de CTE avec jointure

Vous pouvez utiliser exists() au lieu de la jointure interne à MyTable dans le CTE.

with cte as 
(
  select top(1) q.id,
                q.col1
  from queue q with (readpast)
  where exists(
              select *
              from  MyTable a 
              where  q.id = a.myTableID AND 
                     a.procID = @myParam
              )
  order by q.Data asc
)
delete from cte
output deleted.ID, deleted.col1;