sql >> Databáze >  >> RDS >> Sqlserver

T-SQL pomocí Cross-Apply s příkazem Delete

Nevidím žádnou výhodu v použití křížové aplikace zde. Zde je jednoduché řešení, které funguje:

declare @t table(recordid int)
declare @tableone table(recordid int)
declare @tabletwo table(recordid int)
declare @tablethree table(recordid int)
insert @t values(101),(102),(103),(104),(105),(106)

insert @tableone values(101),(102),(103),(104)
insert @tablethree values(101),(102)

delete t
from @t t
where not exists (select 1 from @tableone where t.recordid = recordid)
and exists (select 1 from @tableone)
or not exists (select 1 from @tabletwo where t.recordid = recordid)
and exists (select 1 from @tabletwo)
or not exists (select 1 from @tablethree where t.recordid = recordid)
and exists (select 1 from @tablethree)

Výsledek:

recordid
101
102


  1. Pasti a nástrahy SQLite

  2. Chcete-li převést řetězec na tabulku se schématem

  3. Co bych rád viděl v Amazon EC2 pro správu databází

  4. jak načíst obrázek z databáze mysql pomocí java servletu a zobrazit jej v HTML img tagu?