- PR -

SQL構文 テキストの連結

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-27 14:20
引用:

sessouさんの書き込み (2005-12-27 14:05) より:

なにかうまい方法はないでしょうか?


ISNULL ですね。

# Oracle なら NVL... orz

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
明智重蔵
大ベテラン
会議室デビュー日: 2005/09/05
投稿数: 127
投稿日時: 2005-12-27 15:31
>ISNULL ですね。
># Oracle なら NVL... orz

Oracleならnvlを使わなくてもいいのでは
select a || b || c
from (select 'aaa' as a ,null as b,'ccc' as c from dual);


[ メッセージ編集済み 編集者: 明智重蔵 編集日時 2005-12-27 15:33 ]
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-12-27 15:40
引用:

明智重蔵さんの書き込み (2005-12-27 15:31) より:
>ISNULL ですね。
># Oracle なら NVL... orz

Oracleならnvlを使わなくてもいいのでは
select a || b || c
from (select 'aaa' as a ,null as b,'ccc' as c from dual);



いや、NVLすべきと思います。
column1, column2, column3ともにNULLの可能性があるので、
3つの列がNULLであった場合、NULLが取得されるからです。

#追記
いや、ふと書いてから3つNULLならNULLにしたいって意思だったら
しなくてもいいかぁ〜って自分で思っちゃいました。

一応9iのマニュアル上は以下の様に書かれていますけど・・・
引用:

Oracle は、長さが0(ゼロ)の文字列をNULL として処理しますが、長さが0(ゼロ)の文
字列を別のオペランドと連結すると、その結果は常にもう一方のオペランドになります。結
果がNULL になるのは、2 つのNULL 文字列を連結したときのみです。ただし、この処理
はOracle の今後のバージョンでも継続されるとはかぎりません。NULL になる可能性があ
る式を連結する場合は、NVL ファンクションを使用して、その式を長さが0(ゼロ)の文字
列に明示的に変換してください。



[ メッセージ編集済み 編集者: 夏椰(冒 険 者) 編集日時 2005-12-27 15:46 ]

スキルアップ/キャリアアップ(JOB@IT)