Oracleが使用するdefault順序をNULL LAST(またはNULL FIRST)、各クエリに入力する必要はありませんか?
いいえ、変更する方法はありません NULLS FIRST
およびNULLS LAST
のデフォルトの動作 :
NULLS LASTは昇順のデフォルトであり、NULLS FIRSTは降順のデフォルトです。
変更が不可能であることを証明することはできませんが、実装される可能性が最も高い場所でそのような機能を見つけることはできません。
SQLオプションmanual は何も言及していません。
ParameterV$PARAMETER
のnlsパラメーターはどれも制御しません:select * from v$parameter where name like '%nls%';
隠しパラメーター隠しパラメーター はありません。 %null%や%sort%のようなものを検索しようとしましたが、それらはどれも意味がありません。
Locale BuilderOracleでは、 独自のカスタムソートを作成 を使用できます。多くのオプションがありますが、NULLのソート方法を定義できるオプションはありません。メジャーソートおよびマイナーソートの数値を実際に高くまたは低く設定しても、変更されません(NULLがハードコーディングされた小さな値または大きな値として実装されることを望んでいました)。 0x0000のソート順を設定できます。これは「NULL」ですが、これは異なるタイプのNULLです。
いいえ、order by
句を使用せずにデフォルトの順序を有効にする方法はありません。これにより、NULL
sを最後または最初に配置できます。以下に例を示します。
昇順
SQL> with t1(col) as(
2 select 1 from dual union all
3 select 2 from dual union all
4 select null from dual union all
5 select 3 from dual
6 )
7 select *
8 from t1
9 order by col asc nulls last
10 ;
結果:
COL
------
1
2
3
null
降順
SQL> with t1(col) as(
2 select 1 from dual union all
3 select 2 from dual union all
4 select null from dual union all
5 select 3 from dual
6 )
7 select *
8 from t1
9 order by col desc nulls last
10 ;
結果:
COL
----------
3
2
1
null
昇順では、NULL値は常に最後にソートされます