sql >> データベース >  >> RDS >> PostgreSQL

列挙型が持つことができるすべての値を取得するSQLクエリ

    配列が必要な場合:

    SELECT enum_range(NULL::myenum)
    

    列挙型のアイテムごとに個別のレコードが必要な場合:

    SELECT unnest(enum_range(NULL::myenum))  
    

    追加情報

    このソリューションは、列挙型がデフォルトのスキーマにない場合でも期待どおりに機能します。たとえば、myenumを置き換えます myschema.myenumを使用 。

    上記のクエリで返されるレコードのデータ型は、myenumになります。 。何をしているのかによっては、テキストにキャストする必要があるかもしれません。例:

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

    列名を指定する場合は、AS my_col_nameを追加できます。 。

    私が答えに組み込んだいくつかの追加のヒントを指摘してくれたJustinOhmsの功績です。



    1. GROUP BY+CASEステートメント

    2. Cloud9 postgres

    3. RECORDの列をループします

    4. SQLServerデータベース内のすべてのトリガーをテーブル名とテーブルのスキーマとともに一覧表示する必要があります