sql >> Databáze >  >> RDS >> PostgreSQL

SQL dotaz pro získání všech hodnot, které výčet může mít

Pokud chcete pole:

SELECT enum_range(NULL::myenum)

Pokud chcete samostatný záznam pro každou položku ve výčtu:

SELECT unnest(enum_range(NULL::myenum))  

Další informace

Toto řešení funguje podle očekávání, i když váš výčet není ve výchozím schématu. Například nahraďte myenum s myschema.myenum .

Datový typ vrácených záznamů ve výše uvedeném dotazu bude myenum . V závislosti na tom, co děláte, možná budete muset přenést do textu. např.

SELECT unnest(enum_range(NULL::myenum))::text

Pokud chcete zadat název sloupce, můžete připojit AS my_col_name .

Poděkování patří Justinu Ohmsovi za upozornění na některé další tipy, které jsem začlenil do své odpovědi.



  1. Co je omezení primárního klíče v databázi SQL Server - SQL Server / Výukový program T-SQL, část 54

  2. Jak CONV() funguje v MariaDB

  3. Zábava s novými funkcemi Postgres od Djanga

  4. Vygenerujte sadu nebo sekvenci bez smyček – část 2