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

Bagaimana cara memasukkan nilai nol dalam kueri `tablefunc` di postgresql?

Gunakan crosstab() varian dengan dua parameter :

SELECT * FROM crosstab(
   'SELECT zone_id, group_id, area
    FROM   ct
    ORDER  BY 1,2'

   ,'SELECT g FROM generate_series(1,8) g'  -- ! Provide values explicitly
   )
AS ct(
     row_name integer
   , g_1 float8, g_2 float8
   , g_3 float8, g_4 float8
   , g_5 float8, g_6 float8
   , g_7 float8, g_8 float8);

Dengan demikian mendeklarasikan secara eksplisit nilai mana yang masuk ke kolom output mana. Jadi fungsinya tahu di mana harus mengisi NULL nilai-nilai. Dalam hal ini generate_series() berguna untuk menyediakan 8 baris dengan angka 1-8. Sebuah VALUES ekspresi akan menjadi alternatif:

'VALUES (1), (2), (3), (4), (5), (6), (7), (8)'

Juga, jangan lupa ORDER BY klausa dalam kueri parameter pertama.

Saya memberikan penjelasan mendetail dalam jawaban terkait ini .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengatur tingkat isolasi

  2. Sqlalchemy tidak berfungsi dengan pagination

  3. Bagaimana cara menanyakan kolom json untuk objek kosong?

  4. CakePHP 2.2 dengan PostgreSQL Gagal menyisipkan baris baru - Kesalahan Basis Data:Tabel tidak terdefinisi:7 ERROR:relasi table_id_seq tidak ada

  5. Apa cara tercepat untuk menerapkan 150 juta pembaruan pada tabel PostgreSQL