PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SQL beberapa UNNEST dalam daftar pilih tunggal

Ini bukan tentang unnest seperti itu, tetapi tentang penanganan PostgreSQL yang sangat aneh dari beberapa fungsi pengembalian set di SELECT daftar. Mengatur fungsi pengembalian di SELECT bukan bagian dari standar SQL ANSI.

Anda akan menemukan perilaku yang jauh lebih waras dengan LATERAL kueri, yang harus lebih disukai daripada menggunakan fungsi pengembalian set di FROM sebanyak mungkin:

select a, b FROM unnest(array[1,2]) a, LATERAL unnest(array[1,2,3]) b;

misalnya

regress=> select a, b FROM unnest(array[1,2]) a, LATERAL unnest(array[1,2,3]) b;
 a | b 
---+---
 1 | 1
 1 | 2
 1 | 3
 2 | 1
 2 | 2
 2 | 3
(6 rows)

Satu-satunya waktu saya masih menggunakan beberapa fungsi pengembalian set di SELECT adalah ketika saya ingin memasangkan nilai dari fungsi yang keduanya mengembalikan jumlah baris yang sama. Kebutuhan untuk itu akan hilang dalam 9.4, dengan multi-argumen unnest dan dengan dukungan untuk WITH ORDINALITY .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di mana file database Postgres disimpan di ubuntu?

  2. Cara membagi array menjadi baris di Postgresql

  3. SQL mengeluarkan data dari BEGIN; ...; AKHIR; blokir dengan python

  4. Perbarui tabel dan tambahkan data dalam Migrasi Laravel 5

  5. Pencadangan DB Postgresql Praktik ideal