PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SQL-Abfrage, um alle Werte zu erhalten, die eine Aufzählung haben kann

Wenn Sie ein Array wollen:

SELECT enum_range(NULL::myenum)

Wenn Sie einen separaten Datensatz für jedes Element in der Aufzählung wünschen:

SELECT unnest(enum_range(NULL::myenum))  

Zusätzliche Informationen

Diese Lösung funktioniert wie erwartet, auch wenn Ihre Aufzählung nicht im Standardschema enthalten ist. Ersetzen Sie beispielsweise myenum mit myschema.myenum .

Der Datentyp der zurückgegebenen Datensätze in der obigen Abfrage ist myenum . Je nachdem, was Sie tun, müssen Sie möglicherweise in Text umwandeln. z. B.

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

Wenn Sie den Spaltennamen angeben möchten, können Sie AS my_col_name anhängen .

Vielen Dank an Justin Ohms für den Hinweis auf einige zusätzliche Tipps, die ich in meine Antwort aufgenommen habe.