PART_TYPE列とVALUE列を持つテーブルNAMEがあるとします。各タイプには、FAMILY、GIVEN、PREFIXなどの複数のタイプを含めることができます。
私がやりたいのは、すべての名前を取得するSQLを作成することですが、最初に特定のタイプで並べ替えてから、そのタイプ内でアルファベット順に並べ替えます。
私はこのようなものを持っています:
SELECT *
FROM name
ORDER BY (
CASE
WHEN PART_TYPE = 'GIV'
THEN VALUE
END)
しかし、VALUEをセカンダリオーダーとして保持しながら、他のタイプをプライマリオーダーとして含める方法がわかりません。別のcaseステートメントを追加すると、VALUEがプライマリオーダーになります。
このデータベースを独立させたいのですが、必要に応じて、Oracle固有のデータベースにするつもりです。
これどうやってするの?また、HibernateCriteriaを使用してこれを行う方法も非常に高く評価されます。
編集:PART_TYPEは、自分で定義した特定の順序で並べ替える必要があります。特に、それは与えられてから家族である必要があります。
したがって、次のようになります。
GIVEN A
GIVEN B
GIVEN C
FAMILY A
FAMILY B
による自然な秩序は、与えられたものではなく、最初に家族を持つでしょう。