0

先行ゼロを追加する必要があるデータがあります。しかし、問題はデータ型が float であることです。したがって、ゼロを追加すると、自動的にゼロが省略されます。先行ゼロを追加してから、varchar(50) に変換しようとしました。しかし、それはエラーを出しています:

メッセージ 102、レベル 15、状態 1、行 1 'wallet_sys' 付近の構文が正しくありません。

次のクエリを使用しました。

select  (convert (varchar(50), ('0' + wallet_sys wallet_sys)))  from NewSysData1

私は何を間違えましたか?

PS: サンプル データの一部を以下に示します: 17187383、87339833、93838793

これらを次のようにしたい: 017187383、087339833、093838793

4

1 に答える 1

4

前ではなく、文字列になったにゼロを追加する必要があります。

select  '0' + convert (varchar(50), (wallet_sys)) as wallet_sys  from NewSysData1

通常、ほとんどの人は、たとえば結果の幅を固定し、それを実現するために適切な数の先行ゼロを使用するように変換したいと考えています。そのためには、もう少し作業が必要です。

select RIGHT('0000000000' + convert (varchar(50), (wallet_sys wallet_sys)),10) as wallet_sys 
from NewSysData1

10 桁を生成し、先頭に必要な数のゼロを付けます (文字列リテラルのゼロの数は、必要な桁数と同じである必要があり、これは最初の行の右端にある 10 でもあります)

于 2013-09-02T13:34:44.937 に答える