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

SQLite को छोड़कर ऑपरेटर

SQLite में, EXCEPT कंपाउंड बनाने के लिए ऑपरेटर का उपयोग किया जा सकता है SELECT वह कथन जो बाईं ओर से लौटाई गई पंक्तियों का सबसेट देता है SELECT जो दाईं ओर से नहीं लौटाए जाते हैं SELECT

उदाहरण

मान लीजिए कि हमारे पास निम्नलिखित टेबल हैं:

SELECT * FROM Teachers;
SELECT * FROM Students;

परिणाम:

TeacherId  TeacherName
---------  -----------
1          Warren     
2          Ben        
3          Cathy      
4          Cathy      
5          Bill       
6          Bill       

StudentId  StudentName
---------  -----------
1          Faye       
2          Jet        
3          Spike      
4          Ein        
5          Warren     
6          Bill       

हम EXCEPT . का उपयोग कर सकते हैं जो शिक्षक भी छात्र नहीं हैं, उन्हें लौटाने के लिए ऑपरेटर:

SELECT TeacherName FROM Teachers
EXCEPT
SELECT StudentName FROM Students;

परिणाम:

TeacherName
-----------
Ben        
Cathy      

इसलिए हमें केवल वही मान मिलते हैं जो Teachers . में दिखाई देते हैं तालिका जो Students . में भी दिखाई नहीं देती है टेबल।

बाईं ओर कौन सी तालिका है और कौन सी दाईं ओर है, इसके आधार पर हम अलग-अलग परिणाम प्राप्त कर सकते हैं। यहां एक उदाहरण दिया गया है जो Students को रखता है बाईं ओर तालिका और Teachers दाईं ओर:

SELECT StudentName FROM Students
EXCEPT
SELECT TeacherName FROM Teachers;

परिणाम:

StudentName
-----------
Ein        
Faye       
Jet        
Spike      

इस बार हमें ऐसे छात्र मिले जो शिक्षक भी नहीं हैं।

SQLite का EXCEPT ऑपरेटर केवल अलग पंक्तियाँ देता है। तो हमारे उदाहरण में, Cathy . के लिए केवल एक पंक्ति लौटाई जाती है , भले ही उस नाम के दो शिक्षक हों।

कुछ अन्य RDBMS हमें एक वैकल्पिक ALL . स्वीकार करके परिणाम में डुप्लिकेट शामिल करने की अनुमति देते हैं कीवर्ड उनके EXCEPT . के साथ ऑपरेटर, लेकिन SQLite नहीं करता है (कम से कम, लेखन के समय नहीं)। कुछ भी परिवर्तन होने पर SQLite के दस्तावेज़ों की जाँच करने के लिए स्वतंत्र महसूस करें।

एक वैकल्पिक

EXCEPT . का उपयोग किए बिना समान परिणाम प्राप्त करना संभव है ऑपरेटर। उदाहरण के लिए, हम इसके लिए अपना पहला उदाहरण फिर से लिख सकते हैं:

SELECT 
    DISTINCT TeacherName
FROM Teachers t 
WHERE NOT EXISTS (SELECT StudentName FROM Students s
WHERE t.TeacherName = s.StudentName);

परिणाम:

TeacherName
-----------
Ben        
Cathy      

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite में एक स्ट्रिंग को कैसे ट्रिम करें?

  2. Android में sqlite डेटाबेस में बड़ी मात्रा में डेटा कैसे डालें?

  3. SQLite क्वेरी परिणामों को HTML तालिका के रूप में प्रारूपित करें

  4. SQLite डेटाबेस को XML फ़ाइल में निर्यात करें

  5. सिंगलटन दृष्टिकोण के साथ SQLite स्मृति समस्या