- - PR -
SQLでNULLを取得
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-15 10:26
えっと、「受注番号」列には、NULLも含まれているのでしょうか? NVL(受注番号, 'NULL') = NVL(NVL(%JYUCYUCD%, 受注番号), 'NULL') とか? #受注番号列がNUMBERの場合、'NULL'は-1とかに置き換えてください。 | ||||
|
投稿日時: 2003-10-15 10:52
Jittaさん返答ありがとうございました。
引用------------------------------------------------------------- NVL(受注番号, 'NULL') = NVL(NVL(%JYUCYUCD%, 受注番号), 'NULL') ----------------------------------------------------------------- で実行したところデータが取得できました!! でもこれだとレスポンスはどうなるんでしょうか?? もしこのような置換文字列が複数存在し、全てに上記の処理を組み込んでいったら やはり遅くなってしまうのでしょうか? | ||||
|
投稿日時: 2003-10-15 11:53
SQL*PLUS上であれば、「SET TIMING ON」で、実行したSQL文にかかった時間(おそらく、表示のための時間も含まれる)が表示されるので、思いつく限りの比較文と比較してみては如何でしょうか。 これ以上は.NETから離れているので、「RDB研究館」ででも。 | ||||
|
投稿日時: 2003-10-15 12:18
↑Jittaさん、投稿数がフィーバーですね。
普通、NULLも含めて全件取得するならWHERE句には条件つけませんよね。 "受注番号"カラムにはNULLを含んでいてもインデックス作成できますから 受注番号を指定した時は高速になりますけど。 Jittaさんも言っているように"受注番号"にはNULLが入っていてもいいんですかね? データをロードする時にNULLが入らないようにしてやれば、簡単になると思いますけど。 | ||||
|
投稿日時: 2003-10-17 09:46
Jittaさん、ぴでさん返答ありがとうございました。
受注番号というのはあくまでたとえであってデーターがIS NOT NULLのものもあれば IS NULLのものもあります。 たしかにIS NULLであればNVLを使うこともありませんし、 IS NOT NULLであればWHERE句の条件に入れないほうが高速になりますね。 言葉足らずで申し訳ありません。 データがIS NOT NULLのものに関しては JittaさんにアドバイスしていただいたNVLの方法で対処していこうと思います。 みなさん、本当にありがとうございました。 |