いくつかの項目のステータスを示す列を持つOracle 11gの表があります。特定の3つのフラグが最初に順序付けされ、残りがアルファベット順に並べ替えられる方法はありますか?その後、ステータスのすべてのアイテムをリストしOracle - 最初に特定の値で注文し、残りは
SELECT ITEM, STATUS FROM FOO ORDER BY STATUS ('I', 'U', 'P') ASC
に似
何か私、そしてU、その後、P、その後、残りの項目の最後。
いくつかの項目のステータスを示す列を持つOracle 11gの表があります。特定の3つのフラグが最初に順序付けされ、残りがアルファベット順に並べ替えられる方法はありますか?その後、ステータスのすべてのアイテムをリストしOracle - 最初に特定の値で注文し、残りは
SELECT ITEM, STATUS FROM FOO ORDER BY STATUS ('I', 'U', 'P') ASC
に似
何か私、そしてU、その後、P、その後、残りの項目の最後。
これは、これが欠落している右括弧に関するエラーがスローされますいくつかの理由で、すべてのDBエンジン
SELECT ITEM, STATUS
FROM FOO
ORDER BY case when STATUS = 'I' then 1
when STATUS = 'U' then 2
when STATUS = 'P' then 3
else 4
end,
status
これを試してみてください:me..Checkデモのために働く
:create table FOO (ITEM varchar2(10), STATUS varchar2(10)) ;
SELECT ITEM, STATUS
FROM FOO
ORDER BY DECODE (STATUS,'I',1, 'U',2, 'P',3,4) ;
結果:
SQL> SELECT ITEM, STATUS
FROM FOO
ORDER BY DECODE (STATUS,'I',1, 'U',2, 'P',3,4) ;
2 3
no rows selected
どのようにあなたがそれを使用しています?
のために動作します。 – bjelleklang
私のために働いています...あなたの試した何かが間違っている...デモを確認\ – XING
完璧、多くのありがとう! – bjelleklang