sql >> Database teknologi >  >> RDS >> PostgreSQL

SQL-forespørgsel for at få alle værdier en enum kan have

Hvis du vil have et array:

SELECT enum_range(NULL::myenum)

Hvis du ønsker en separat post for hvert punkt i enummet:

SELECT unnest(enum_range(NULL::myenum))  

Yderligere oplysninger

Denne løsning fungerer som forventet, selvom dit enum ikke er i standardskemaet. Erstat for eksempel myenum med myschema.myenum .

Datatypen for de returnerede poster i ovenstående forespørgsel vil være myenum . Afhængigt af hvad du laver, skal du muligvis caste til tekst. f.eks.

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

Hvis du vil angive kolonnenavnet, kan du tilføje AS my_col_name .

Tak til Justin Ohms for at have påpeget nogle yderligere tips, som jeg har indarbejdet i mit svar.



  1. Oracle:Hvad gør `(+)` i en WHERE-sætning?

  2. Hvad er forskellen mellem VARCHAR og CHAR?

  3. Hvorfor giver denne SQL-kode fejl 1066 (Ikke unik tabel/alias:'bruger')?

  4. Sådan finder du navnet på en begrænsning i SQL Server