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

Cara menyatukan dua subquery di SQLAlchemy dan postgresql

saya menggunakan pendekatan yang sedikit berbeda:

# the first subquery, select all ids from SOME_TABLE where some_field is not NULL
s1 = select([SOME_TABLE.c.id]).where(SOME_TABLE.c.some_field != None)

# the second subquery, select all ids from SOME_TABLE where some_field is NULL
s2 = select([SOME_TABLE.c.id]).where(SOME_TABLE.c.some_field != None)

# union s1 and s2 subqueries together and alias the result as "alias_name"
q = s1.union(s2).alias('alias_name')

# run the query and limit the aliased result to 10
session.query(q).limit(10)

Berikut adalah sql yang dihasilkan:

SELECT alias_name.id AS alias_name_id 
FROM (SELECT some_table.id AS id 
FROM some_table 
WHERE some_table.some_field IS NOT NULL UNION SELECT some_table.id AS id 
FROM some_table 
WHERE some_table.some_field IS NULL) AS alias_name 
LIMIT 10

Saya pikir ini adalah hasil yang Anda inginkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memulihkan satu tabel dari cadangan .sql postgresql?

  2. 3 Cara Mendaftar Semua Prosedur Tersimpan yang Mereferensikan Tabel di PostgreSQL

  3. Tentang manfaat jalur yang diurutkan

  4. Pilih hanya baris yang kolomnya diubah dari baris sebelumnya, diberi ID unik

  5. Bagaimana mencegah kondisi balapan di Django pada INSERT dengan membatasi SUM?