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

Korzystanie z klauzuli EXCEPT w PostgreSQL

Twoje zapytanie wydaje się całkowicie poprawne:

SELECT fk_id_tbl2 AS some_name
FROM   table1
EXCEPT  -- you may want to use EXCEPT ALL
SELECT pk_id
FROM   table2;

Kolumny nazwy są nieistotne dla zapytania. Tylko typy danych musi pasować. Nazwa kolumny wyjściowej zapytania to fk_id_tbl2 , tylko dlatego, że jest to nazwa kolumny w pierwszym SELECT . Możesz użyć dowolnego aliasu.

Co jest często pomijane:subtelne różnice między EXCEPT (która składa duplikaty) i EXCEPT ALL - która zachowuje wszystkie indywidualne niedopasowane wiersze.Więcej wyjaśnień i inne sposoby na zrobienie tego samego, niektóre z nich znacznie bardziej elastyczne:

  • Wybierz wiersze, których nie ma w innej tabeli

Szczegóły dotyczące EXCEPT w instrukcji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obliczanie sumy skumulowanej w PostgreSQL

  2. BŁĄD:odmowa zezwolenia dla sekwencji cities_id_seq przy użyciu Postgres

  3. Jak wyświetlić listę tabel dotkniętych kaskadowym usuwaniem?

  4. PostgreSQL wybiera najnowszy wpis dla danego identyfikatora

  5. PostgreSQL :rzuca ciąg do daty DD/MM/RRRR