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

पोस्टग्रेएसक्यूएल में थोक अद्यतन unnest . का उपयोग कर

आप unnest calling को कॉल कर रहे हैं FROM . पर 3 बार क्लॉज, इसका मतलब है कि आप CROSS JOIN कर रहे हैं (कार्टेशियन उत्पाद) 3.

यदि आप PostgreSQL 9.4 या उच्चतर पर हैं, तो आप unnest . की एक कॉल सरल कर सकते हैं प्रत्येक सरणी को इनपुट के रूप में देना:

select * from 
         unnest(
            array['2001622', '2001624', '2007903'],
             array[15,14,8],
             array['type1', 'type1', 'type1'],
             array[false, true, true]
        ) as u(id, ver, type, enabled)

एक अन्य विकल्प, किसी भी संस्करण के लिए, कॉल को unnest . में जोड़ना है में SELECT FROM . के बजाय :

select
   unnest(array['2001622', '2001624', '2007903']) as id,
   unnest(array[15,14,8]) as ver,
   unnest(array['type1', 'type1', 'type1']) as type,
   unnest(array[false, true, true]) as enabled

दोनों ही मामलों में, लेकिन विशेष रूप से आखिरी पर, आपको यह सुनिश्चित करना चाहिए कि प्रत्येक सरणी में तत्वों की समान संख्या हो। यदि यह पहली विधि पर नहीं है तो प्रत्येक लापता पंक्ति को NULL के रूप में भर दिया जाएगा, लेकिन दूसरी यह उतनी ही पंक्तियाँ लौटाएगी जितनी कि LCM प्रत्येक द्वारा लौटाई गई पंक्तियों की संख्या, जो आप शायद नहीं चाहते हैं। उदाहरण:

SELECT * FROM unnest(array[1,2,3,4], array['a','b','c','d','e','f']);
 unnest | unnest 
--------+--------
      1 | a
      2 | b
      3 | c
      4 | d
 [null] | e
 [null] | f
(6 rows)

SELECT unnest(array[1,2,3,4]), unnest(array['a','b','c','d','e','f']);
 unnest | unnest 
--------+--------
      1 | a
      2 | b
      3 | c
      4 | d
      1 | e
      2 | f
      3 | a
      4 | b
      1 | c
      2 | d
      3 | e
      4 | f
(12 rows)

टेबल फंक्शन कॉल्स अधिक जानकारी के लिए।



  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. JDBC का उपयोग करके फ़ाइल से PostgreSQL में डेटा कैसे कॉपी करें?

  3. एक बाइट के रूप में PostgreSQL में हेक्स के साथ टेक्स्ट स्ट्रिंग सम्मिलित करना

  4. SQLAlchemy create_all () टेबल नहीं बनाता है

  5. PHP PgSQL डेटाबेस के लिए PDO क्लास कंस्ट्रक्टर में UTF-8 कैसे सेट करें