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

ऑपरेटर मौजूद नहीं है:पूर्णांक =पूर्णांक [] किसी के साथ एक प्रश्न में

त्रुटि संदेश भाग के आधार पर operator does not exist: integer = integer[] , ऐसा प्रतीत होता है कि bs कॉलम unnest होना चाहिए ed, दाहिने हाथ की ओर एक integer . पर वापस लाने के लिए इसलिए तुलना ऑपरेटर पाया जा सकता है:

WITH bar AS (
  SELECT array_agg(b) AS bs
  FROM foo
  WHERE c < 3
)
SELECT a
FROM foo
WHERE b = ANY ( SELECT unnest(bs) FROM bar);

इसका परिणाम आउटपुट में होता है:

A
2
3

किसी भी फ़ंक्शन के लिए दस्तावेज़ को देखते हुए :

... त्रुटि समझ में आती है, क्योंकि बाएं हाथ की अभिव्यक्ति एक integer है -- कॉलम b -- जबकि दाहिने हाथ की अभिव्यक्ति integer . की एक सरणी है s, या integer[] , और इसलिए तुलना integer . के रूप में समाप्त होती है =integer[] , जिसमें कोई ऑपरेटर नहीं है, और इसलिए त्रुटि होती है।

unnest integer[] value बाएँ और दाएँ हाथ के भाव integer . बनाता है s, और इसलिए तुलना जारी रह सकती है।

संशोधित SQL Fiddle

नोट: IN . का उपयोग करते समय वही व्यवहार देखा जाता है के बजाय = ANY



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्लोनी स्लेव नोड पर केवल INSERTs को DELETEs/UPDATEs को दोहराने के लिए कैसे?

  2. PostgreSQL के साथ एक इकाई के लिए एकाधिक हाइबरनेट अनुक्रम जनरेटर

  3. रेल और पोस्टग्रेएसक्यूएल:भूमिका पोस्टग्रेज मौजूद नहीं है

  4. Heroku . में डेटाबेस देखना

  5. पोस्टग्रेज में तालिका के लिए क्वेरी अनुदान