電子書籍の厳選無料作品が豊富!

あるSQLの実行結果がどうも納得できないのです。
こちらで詳しい方に解説していただけたらと思い投稿しました。
以下SQL1の実行結果ですが、なぜ'A'の後ろに半角スペースが入ってしまうのでしょうか?
とりあえず私はSQL2のように書き直して本番のSQLは対応しました。
しかし、なんともスッキリできないのです・・・。

(前提条件)
customerテーブルは10件あるとします。

(SQL1)
select 'A'|| (select to_char(count(*),'000') from customer) expr1 from dual;

(SQL1結果) 'A'の後ろになぜか半角スペースが入ります。
expr1
-------
A 010


(SQL2)
select 'A'|| trim((select to_char(count(*),'000') from customer)) expr1 from dual

(SQL2結果) 'A'の後ろに半角スペースは入りません。
expr1
-------
A010

以上よろしくお願いします。

A 回答 (2件)

解決方法は#1の方が仰るとおりです。


ちなみにこの半角スペースは、変換前の数値がプラスの値であるということです。なので、変換前の値(COUNTなので0以上なのですが…)が、-10だった場合は'A-10'とスペースが付きません。
TO_CHARの仕様ですね。
参考URLの書式(0)の部分が参考になるかと。

参考URL:http://biz.rivus.jp/number_format_element.html
    • good
    • 0
この回答へのお礼

hiro_sun 様
大変参考になりました。TO_CHARの仕様だったのですね。
これでスッキリしました。
今度からはもっとしっかり調べてからこちらで質問させていただくようにします。
ありがとうございました。

お礼日時:2007/06/14 20:57

書式モデルの修飾子(FM/FX)のFMを使ってください。

    • good
    • 0
この回答へのお礼

MZ-80B様
とてもすばやいご回答ありがとうございました。
またよろしくお願いします。

お礼日時:2007/06/14 20:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!