プロが教えるわが家の防犯対策術!

db2にて数値を3桁文字にて出力したい

例えば
(1) 1→001
(2) 25→025
(3) 674→674

このようにSQL文にて可能でしょうか?

A 回答 (4件)

cast()でなく、varchar()で変換するとか>ANo.3

「db2にて数値を3桁文字にて出力したい」の回答画像4

この回答への補足

osamuyさん 回答ありがとうございました

V8ですとエラーが発生し、動作しません

エラーコード:-440 SQL0440N 互換引き数を持つタイプ"FUNCTION"の名前"VARCHAR"の許可ルーチンが見つかりませんでした。 SQLSTATE=42884

補足日時:2011/11/28 08:34
    • good
    • 0
この回答へのお礼

osamuyさん 下記にようにしたらOKでした

SELECT RIGHT('000' || RTRIM(CHAR(店番)),3) FROM 店番テーブル

ありがとうございました

お礼日時:2011/11/28 09:00

DB2でも「||」で文字列の連結はできますよね。

V8にもRIGHT関数があるのなら、
RIGHT( '000' || CAST( 項目名 AS CHAR), 3 )
でいけませんか?
なんか。AS/400では見当たらないというページもあるので確証はありませんが。

この回答への補足

nora1962さん 回答ありがとうございます

うまくいきませんでした

実行結果

8→008
72→007
123→001

ちなみに、'000' || CAST(店番 AS CHAR)

8→0008
72→0007
123→0001


ちなみに、'000' || CHAR(店番)

8→0008△△△
72→00072△△△
123→000123△△△

△は半角空白です

補足日時:2011/11/25 17:42
    • good
    • 0

となると、手っ取り早いのは


1 001
2 002
・・・・
999 999
という内容のテーブルを作ってジョインすることかな。
    • good
    • 0

環境がないので検証していませんが、v9以降というかv9でしたら、to_charが使えるようです。


http://space.geocities.jp/nequomame/comparedb/or …
    • good
    • 0
この回答へのお礼

ShowMeHowさん 回答ありがとうございます

V8なので、ダメみたいです

お礼日時:2011/11/25 08:25

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

関連するカテゴリからQ&Aを探す