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

'कोई भी' के साथ एक PostgreSQL क्वेरी काम नहीं कर रही है

आप ALL का उपयोग करना चाहते हैं , नहीं ANY . बढ़िया मैनुअल से:

<ब्लॉकक्वॉट>

9.21.3. कोई/कुछ (सरणी)

expression operator ANY (array expression)

[...] बाएं हाथ की अभिव्यक्ति का मूल्यांकन किया जाता है और दिए गए ऑपरेटर का उपयोग करके सरणी के प्रत्येक तत्व की तुलना की जाती है। , जो एक बूलियन परिणाम देना चाहिए। ANY . का परिणाम यदि कोई सही परिणाम प्राप्त होता है तो "सत्य" होता है।

तो अगर हम यह कहते हैं:

1 != any(array[1,2])

तब हम (1 != 1) or (1 != 2) . के बाद से सच हो जाएंगे सच हैं। ANY अनिवार्य रूप से एक OR है ऑपरेटर। उदाहरण के लिए:

=> select id from (values (1),(2),(3)) as t(id) where id != any(array[1,2]);
 id 
----
  1
  2
  3
(3 rows)

अगर हम ALL को देखें तो , हम देखते हैं:

<ब्लॉकक्वॉट>

9.21.4. सभी (सरणी)

expression operator ALL (array expression)

[...] बाएं हाथ की अभिव्यक्ति का मूल्यांकन किया जाता है और दिए गए ऑपरेटर का उपयोग करके सरणी के प्रत्येक तत्व की तुलना की जाती है। , जो एक बूलियन परिणाम देना चाहिए। ALL . का परिणाम "सच" है अगर सभी तुलनाएं सच होती हैं...

तो अगर हम यह कहते हैं:

1 != all(array[1,2])

तब हम (1 != 1) and (1 != 2) . के बाद से असत्य प्राप्त करेंगे गलत है और हम देखते हैं कि ALL अनिवार्य रूप से एक AND है ऑपरेटर। उदाहरण के लिए:

=> select id from (values (1),(2),(3)) as t(id) where id != all(array[1,2]);
 id 
----
  3
(1 row)

यदि आप किसी सरणी में सभी मानों को बाहर करना चाहते हैं, तो ALL का उपयोग करें :

select "Ticket_id"
from "Tickets"
where "Status" = 1
  and "Ticket_id" != all(array[1,2,3])
limit 6


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बूलियन कॉलम पर SQLAlchemy func.count

  2. PostgreSQL में रीड ओनली यूजर कैसे बनाएं

  3. क्वेरी में एक कॉलम को कई कॉलमों के साथ एकत्रित करें

  4. अस्थायी डेटाबेस डिज़ाइन, एक मोड़ के साथ (लाइव बनाम ड्राफ्ट पंक्तियाँ)

  5. पोस्टग्रेएसक्यूएल DISTINCT BY भिन्न ऑर्डर के साथ चालू है