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

T-SQL Menggunakan Cross-Apply dengan Hapus Pernyataan

Saya tidak melihat keuntungan apa pun dalam menggunakan cross apply di sini. Berikut adalah solusi sederhana yang berhasil:

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)

Hasil:

recordid
101
102


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memasukkan ke dalam tabel yang menentukan nilai DEFAULT untuk setiap kolom?

  2. Memperkenalkan Platform SaaS Pertama di Dunia untuk Memberikan Diagnostik Mendalam untuk Lingkungan SQL Server Hibrida

  3. Bagaimana cara menanyakan output ini di SQL server

  4. Buat Akun Email Basis Data (SSMS)

  5. Ubah kolom di SQL Server