• ベストアンサー

SQLの結果に納得できません。どなたか解説していただけないでしょうか。

ある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 以上よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hiro_sun
  • ベストアンサー率27% (14/51)
回答No.2

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

参考URL:
http://biz.rivus.jp/number_format_element.html
orazakkun
質問者

お礼

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

その他の回答 (1)

  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.1

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

orazakkun
質問者

お礼

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

関連するQ&A