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

Memilih array dalam format yang dicetak dengan baik di SQL

Ada beberapa cara. Salah satu caranya adalah dengan melemparkan array ke teks dan membaginya dengan regexp_split_to_table () .
Fungsi ini ada di PostgreSQL 8.3 atau yang lebih baru .

SELECT regexp_split_to_table(trim(my_2d_intarr::text, '{}'), '},{');

Keluaran:

0,0,0
1,1,1
2,2,2

Jika Anda menginginkan tanda kurung (mungkin tidak?), tambahkan kembali seperti ini:

SELECT '{' || regexp_split_to_table(trim(my_2d_intarr::text, '{}'), '},{') || '}';

Hasil Kami:

{0,0,0}
{1,1,1}
{2,2,2}

Alternatif:

Ini juga harus bekerja dengan PostgreSQL 8.2 atau mungkin lebih awal, tapi saya tidak mengujinya.

SELECT my_2d_int_arr_var[x:x][1:3]
  FROM (SELECT generate_series(1, array_upper(my_2d_intarr, 1), 1)::int4 AS x)) x

Keluaran:

{{0,0,0}}
{{1,1,1}}
{{2,2,2}}

(Anda mungkin ingin menghapus beberapa tanda kurung kurawal ..)

Lain, saya akan menulis fungsi plpgsql yang loop melalui array. Cukup mudah.

Ada juga unnest() terkait fungsi, tetapi mengembalikan baris per elemen dasar (dalam hal ini bilangan bulat), jadi tidak ada gunanya di sini.

Satu (cepat!) cara untuk menampilkan hasilnya:COPY .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aplikasi Ulasan Heroku:salin DB untuk meninjau aplikasi

  2. Gagal menghubungkan server AWS-Postgres dengan aplikasi boot musim semi dengan hosting heroku

  3. Pengujian mentimun dan RSpec dengan zeus:Postgres sedang diakses oleh pengguna lain

  4. ActiveRecord::StatementInvalid, PG::UndefinedTable error, tetapi SQL yang dihasilkan berfungsi

  5. Masukkan kamus kecil seperti {1:23, 2:45, 3:17} ke dalam kolom tabel database SQL di Postgres menggunakan bahasa python