sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL-fråga för att få alla värden som en enum kan ha

Om du vill ha en array:

SELECT enum_range(NULL::myenum)

Om du vill ha en separat post för varje post i enumen:

SELECT unnest(enum_range(NULL::myenum))  

Ytterligare information

Denna lösning fungerar som förväntat även om din enum inte är i standardschemat. Byt till exempel ut myenum med myschema.myenum .

Datatypen för de returnerade posterna i ovanstående fråga kommer att vara myenum . Beroende på vad du gör kan du behöva casta till text. t.ex.

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

Om du vill ange kolumnnamnet kan du lägga till AS my_col_name .

Tack till Justin Ohms för att han påpekade några ytterligare tips, som jag inkorporerade i mitt svar.



  1. Hur påverkar IMUTABLE, STABLE och VOLATILA nyckelord funktionsbeteende?

  2. Anslut till MySQL på distans

  3. Refererar du till Oracle användardefinierade typer över DBLINK?

  4. Returnera parametrarna för en lagrad procedur eller användardefinierad funktion i SQL Server (T-SQL-exempel)