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

PostgreSQL में सरणी के तत्वों को कैसे निकालें?

unnest() का उपयोग करें array_agg() . के साथ , उदा.:

with cte(array1, array2) as (
    values (array[1,2,3,4], array[1,4])
    )
select array_agg(elem)
from cte, unnest(array1) elem
where elem <> all(array2);

 array_agg 
-----------
 {2,3}
(1 row)

यदि आपको अक्सर इस कार्यक्षमता की आवश्यकता होती है, तो सरल कार्य को परिभाषित करें:

create or replace function array_diff(array1 anyarray, array2 anyarray)
returns anyarray language sql immutable as $$
    select coalesce(array_agg(elem), '{}')
    from unnest(array1) elem
    where elem <> all(array2)
$$;

आप किसी भी सरणी के लिए फ़ंक्शन का उपयोग कर सकते हैं, न केवल int[] :

select array_diff(array['a','b','c','d'], array['a','d']);

 array_diff 
------------
 {b,c}
(1 row) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल इंजेक्शन को रोकने के लिए पैरामीटरयुक्त एसक्यूएल क्वेरी कैसे लिखें?

  2. क्या मैं समानांतर का उपयोग कर सकता हूं। एसक्यूएल कमांड के साथ?

  3. Postgresql के साथ Django, कॉलम ग्रुप बाय क्लॉज में दिखाई देना चाहिए या एक समग्र फ़ंक्शन में उपयोग किया जाना चाहिए

  4. सिद्धांत क्वेरी json को पोस्टग्रेज करती है (इसमें शामिल है) json_array

  5. पोस्टग्रेज में कॉम्बिनेटरिक्स फंक्शन कैसे लिखें?