- PR -

抽出結果の書式について

1
投稿者投稿内容
CB
会議室デビュー日: 2008/12/03
投稿数: 3
投稿日時: 2008-12-03 23:52
お世話になります。

新米PGですので、所々おかしな表現があるかもしれませんが
ご容赦願えればと思います・・・。

現在OracleからSQLServerへ乗り換えるという案件に関わっており、
その中で抽出時に書式を編集している項目があります。

SELECT INSERTでテーブルの内容を移送しているのですが、
移送元の項目がVarChar型、移送先がChar型になっています。

移送元の項目には数値が入っており、例としては

寸法:1.000

という値が入っています。
この値を移送時に、Oracleの記述では
TO_CHAR(寸法,'FM00.00')として出力しています。
その結果、出力される値は 01.00 となっています。

やりたい事をまとめると

1、SQLServerで、Varchar項目からCHAR型の項目に移送時、
整数部にはゼロ埋め、小数部は小数点第二まで取得したい。

移送前  移送後
12.000 -> 12.00
1.200 -> 01.20
0.010 -> 00.01

CONVERT関数でCHARに変換後、
頭に00を足して、RIGHT関数で6桁取得し、
末尾に00を足してLEFTで5桁取るといった方法も原始的ではありますが
思いついたのですが、コードレビューにかかりそうな気がして・・・。
何か良い方法があればご教示願います。

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




無名tiger
常連さん
会議室デビュー日: 2008/04/18
投稿数: 36
投稿日時: 2008-12-04 00:51
引用:

CONVERT関数でCHARに変換後、
頭に00を足して、RIGHT関数で6桁取得し、
末尾に00を足してLEFTで5桁取るといった方法も原始的ではありますが
思いついたのですが、コードレビューにかかりそうな気がして・・・。
何か良い方法があればご教示願います。



原始的ですが、下記の書き方できると思います。
right('00'+convert(varchar,convert(decimal(4,2),寸法)),5)

エラーにならない条件:
1)100超えるデータない
2)数字ではないデータない

_________________
カスタマイズ自由自在のスタートページ。
1

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