[解決済み】Oracle NVLとCoalesceの違いについて
2022-04-07 01:01:44
質問
OracleのNVLとCoalesceの間に明らかな違いはありますか?
明らかな違いは、coalesceはパラメータ・リストの最初の非NULL項目を返すのに対し、nvlは2つのパラメータを取り、それがNULLでなければ最初のパラメータを返し、そうでなければ2番目のパラメータを返すことです。
NVLはcoalesceのベースケースに過ぎないようです。
何か見落としているのでしょうか?
解決方法は?
COALESCE
の一部であり、より現代的な機能です。
ANSI-92
を標準装備しています。
NVL
は
Oracle
で紹介された、特定の
80
'sが標準化される以前のことです。
2つの値がある場合、それらは同義語である。
ただし、実装は異なる。
NVL
は常に両方の引数を評価するのに対し
COALESCE
は、通常、最初の非
NULL
(例外もあります。
NEXTVAL
):
SELECT SUM(val)
FROM (
SELECT NVL(1, LENGTH(RAWTOHEX(SYS_GUID()))) AS val
FROM dual
CONNECT BY
level <= 10000
)
これは、ほぼ
0.5
を生成するため、数秒かかります。
SYS_GUID()
の、にもかかわらず
1
ではない
NULL
.
SELECT SUM(val)
FROM (
SELECT COALESCE(1, LENGTH(RAWTOHEX(SYS_GUID()))) AS val
FROM dual
CONNECT BY
level <= 10000
)
これは、次のように理解します。
1
は
NULL
であり、第2引数を評価しない。
SYS_GUID
は生成されず、クエリーは即座に終了します。
関連
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] Varchar は Sum 演算子では無効です。
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】''付近の構文が正しくない
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] ORA-12801: 並列クエリサーバー P004 および ORA-01555 でシグナルされたエラー: スナップショットが古すぎる。
-
[解決済み] リンクされたサーバーの NULL に対して OLE DB プロバイダー Microsoft.Jet.OLEDB.4.0 のインスタンスを作成できません。
-
[解決済み] CLOBとNCLOBの違いは何ですか?
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法
-
[解決済み] Oracle Trigger ORA-04098: トリガーが無効で、再バリデーションに失敗しました。