PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak połączyć dwa podzapytania w SQLAlchemy i postgresql

zastosowałem trochę inne podejście:

# 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)

Oto utworzony sql:

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

Myślę, że to jest wynik, którego chciałeś.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL a PostgreSQL dla aplikacji internetowych

  2. Postgresql:wstawianie wartości kolumny z pliku

  3. Czy typ danych Postgres NUMERIC może przechowywać podpisane wartości?

  4. Nie znaleziono pgbackups w Heroku

  5. Zastąp ciąg innym ciągiem z listy w zależności od wartości