
No.1ベストアンサー
- 回答日時:
普通に考えたらNVLだと思います。
DECODEは
1.関数の認識
2.値Aの一致性確認
3.置き換え文字の確認B
の3ステップがかかりますが
NVLは
1.関数の確認
2.値Aの一致性確認
だけで済みますから。
NVLよりDECODEがいいのであればNVLは存在意義がなくなります。しかし厳密な速さは違いがあるでしょうか
迷うことは杞憂かと思われます。(ほかのことを悩んだ方が良いでしょう)
あとはコードの可読性ですね。
DECODEよりNVLの方が関数を見ただけで何がしたいのかすぐにわかるので可読性があがります。
よくDECODEを変換表のようにやたらめったら使っているSQLを見ますがあれを見るとプログラマの技術を疑います...
No.2
- 回答日時:
どちらかと言われれば No.1 の方が回答されている通り NVL でしょうが、Oracle 9i で随分と SQL99 標準に対応してきているので、できれば、CASE 文を使われるのがベターだと思います。
CASE 文は不等号も使えるため、DECODE よりもさらにルーチンが複雑であり、遅いと思われますが、処理速度についてはどれも気にしなければならないほどではありません。
内部的には、DECODE、NVL、CASE 以外にも、IN を OR に書き換えたり、OR を UNION ALL に書き換えたりというような複雑な処理が行われることもあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カーソル0件の時にエラーを発生...
-
データ型でFloatとreal の計算...
-
ストアドプロシージャ_カーソル...
-
NVLとDECODEのスピード差
-
テーブルの項目が異なるテーブ...
-
PL/SQL で continue ?
-
Outlook 送受信エラー
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
差し込み後、元データを変更し...
-
MessageBoxで表示される文字列...
-
SQLで特定の項目の重複のみを排...
-
【Transact-sql】 execの結果を...
-
外部参照してるキーを主キーに...
-
ソフトバンクの無料着うたのお...
-
バッチでcsvファイルの指定のカ...
-
列のヘッダーを含めるのをデフ...
-
WordpressのContact form 7でzi...
-
エクセルに見えない文字(JISX0...
-
1日に1人がこなせるプログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カーソル0件の時にエラーを発生...
-
カーソル宣言をIFで分けられま...
-
データ型でFloatとreal の計算...
-
カーソルを使って、最終行レコ...
-
(x 行処理されました)を表示さ...
-
処理件数を非表示にしたい
-
SQL-LOADERの逆のもの
-
RDBとVSAMの比較
-
ストアドプロシージャ_カーソル...
-
Accessで処理経過を表示したい...
-
カーソルオープンの処理について
-
NVLとDECODEのスピード差
-
カーソルがコミットするとクロ...
-
SQL plus で改行
-
PL/SQL で continue ?
-
VBAで複数あるTEXTBOXをクリッ...
-
テーブルの項目が異なるテーブ...
-
クエリの実行時間の目安
-
わり算の結果が整数でも小数点...
-
SELECT と INSERT の速度
おすすめ情報