質問 |
||
| 質問者:orazakkun | 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 以上よろしくお願いします。 |
|
質問投稿日時:07/06/14 18:12 質問番号:3084556 |
||
回答良回答20pt |
|
| 回答者:hiro_sun | 解決方法は#1の方が仰るとおりです。 ちなみにこの半角スペースは、変換前の数値がプラスの値であるということです。なので、変換前の値(COUNTなので0以上なのですが…)が、-10だった場合は'A-10'とスペースが付きません。 TO_CHARの仕様ですね。 参考URLの書式(0)の部分が参考になるかと。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| |
回答日時:07/06/14 20:35 回答番号:No.2 |
|
| 参考URL: | http://biz.rivus.jp/number_format_element.html |
| この回答へのお礼 | hiro_sun 様 大変参考になりました。TO_CHARの仕様だったのですね。 これでスッキリしました。 今度からはもっとしっかり調べてからこちらで質問させていただくようにします。 ありがとうございました。 |
回答良回答10pt |
|
| 回答者:MZ-80B | 書式モデルの修飾子(FM/FX)のFMを使ってください。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:07/06/14 19:17 回答番号:No.1 |
|
| この回答へのお礼 | MZ-80B様 とてもすばやいご回答ありがとうございました。 またよろしくお願いします。 |