0

コンマが頻繁に使用される小数をユーザーが入力したデータベースに問題があります。今後、問題の修正に取り組みますが、すでに入力されている 100 件以上のレコードを修正する必要があります。正しい場所と間違った場所が混在している

小さな例:

153.30
129.30
152.709
153.308
108.777
21.369

小数点がセントを示しているエントリを保持し、そのように見えるためにコンマであるべきだった小数点を削除したいと思います。

153.30
129.30
152709
153308
108777
21369
4

2 に答える 2

2

ここで本当に苦労することになると思います。100 行をスポット チェックして手動で修正するのが最も簡単かもしれません。理由は次のとおりです。

DECLARE @x TABLE(m MONEY);

INSERT @x SELECT 153.30  UNION ALL SELECT 153.300;

SELECT m FROM @x;

結果:

m
------
153.30
153.30

SQL Server はそれらを同一のものとして表示します。テーブルに到着したら、これらの 2 つの値を区別するために、暗黙的または明示的に文字列 (またはバイナリ、またはその他の型) に変換する方法を見つけることができませんでした。

これで、ゼロで終わらない3 桁の 10 進数について、絞り込むことができる場合があります。

DECLARE @x TABLE(m MONEY);

INSERT @x SELECT 153.30  UNION ALL SELECT 153.300
UNION ALL SELECT 153.309 UNION ALL SELECT 24.125;

SELECT m FROM @x WHERE m * 1000 % 10 > 0;

結果:

m
-------
153.309
 24.125

しかし、ゼロで終わるものについては、あなた自身です。それで、データを修正し、ユーザーの手首を叩いて、先に進みます。

于 2013-08-23T19:07:47.287 に答える
1
create table #tt (value varchar(18))
insert into #tt select '153.30'
insert into #tt select '152.709'

select * from
#tt
where len(replace(substring(value,Charindex('.',value),999),'.','')) > 2

これが役立つと思います。この例を varchar 型で作成します。convert を使用すると、更新が必要なものを見つけるのに役立つかもしれません。

于 2013-08-25T23:42:14.473 に答える