SQL : faire un select sur une liste de valeurs

Comment jouer une requête directement sur des valeurs qui ne sont pas dans une table ?

PostgreSQL et Microsoft SQL Server

SELECT DISTINCT * FROM ( VALUES ('valeur1'), ('valeur2'), ('valeur3'), ('valeur2'), ('valeur4') ) AS nom_table(nom_colonne)

MySQL et la plupart des autres SGBD

SELECT DISTINCT * FROM ( SELECT 'valeur1' AS nom_colonne UNION ALL SELECT 'valeur2' UNION ALL SELECT 'valeur3' UNION ALL SELECT 'valeur2' UNION ALL SELECT 'valeur4' ) nom_table

Si vous connaissez la syntaxe avec d'autres SGBD, n'hésitez pas à la poster dans les commentaires.