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

Pilih kolom dengan nama kolom tertentu di PostgreSQL

column adalah kata khusus . Anda tidak dapat menggunakannya sebagai pengidentifikasi kecuali Anda mengutipnya dua kali. Seperti:"column" .

Tidak berarti Anda harus, meskipun. Hanya saja, jangan gunakan kata-kata yang dicadangkan sebagai pengidentifikasi. Pernah.

Untuk ...

pilih daftar kolom dengan nama 2010:

.. Anda dapat menggunakan fungsi ini untuk membangun perintah SQL secara dinamis dari tabel katalog sistem pg_attribute :

CREATE OR REPLACE FUNCTION f_build_select(_tbl regclass, _pattern text)
  RETURNS text AS
$func$
    SELECT format('SELECT %s FROM %s'
                 , string_agg(quote_ident(attname), ', ')
                 , $1)
    FROM   pg_attribute 
    WHERE  attrelid = $1
    AND    attname LIKE ('%' || $2 || '%')
    AND    NOT attisdropped  -- no dropped (dead) columns
    AND    attnum > 0;       -- no system columns
$func$ LANGUAGE sql;

Telepon:

SELECT f_build_select('weather_data', '2010');

Mengembalikan sesuatu seperti:

SELECT foo2010, bar2010_id, FROM weather_data;

Anda tidak dapat membuat ini sepenuhnya dinamis, karena jenis yang dikembalikan tidak diketahui sampai kita benar-benar membuat kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melarikan diri dari nilai SEPERTI SQL untuk Postgres dengan psycopg2

  2. Cara terbaik untuk memilih baris acak PostgreSQL

  3. Bagaimana saya bisa Memasukkan objek JSON ke Postgres menggunakan Java ReadyStatement?

  4. Tolok ukur Meltdown PostgreSQL

  5. Apakah nama fungsi dalam huruf besar/kecil PostgreSQL tidak peka?