Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टी-एसक्यूएल डिलीट स्टेटमेंट के साथ क्रॉस-अप्लाई का उपयोग कर रहा है

मुझे यहां क्रॉस अप्लाई का उपयोग करने में कोई लाभ नहीं दिख रहा है। यहाँ एक सरल उपाय है जो काम करता है:

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)

परिणाम:

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. SQL सर्वर से CSV के रूप में लाइनब्रेक वाले फ़ील्ड निर्यात करने की आवश्यकता है

  2. एक फ़ील्ड के आधार पर, नल को छोड़कर, गैर-डुप्लिकेट रिकॉर्ड खोजें।

  3. मैं बिना छँटाई के किसी तालिका में अंतिम 5 पंक्तियों का चयन कैसे करूँ?

  4. डेटा ड्रिवेन सब्सक्रिप्शन SSRS मानक संस्करण 2008 जैसा कुछ

  5. कुंजी-मान स्ट्रिंग को पार्स करने के लिए SQL