0

次のように、そのうちの1つにvarchar値を持つ複数の列があります。

1
2
4
02
05
6
03
06
123
32
87

0 で始まる値を持つレコードを見つけて、その 0 を削除し (つまり 02 > 2)、そのフィールドを更新して、0 で始まる値がないようにします。

前に0がある各レコードを手動で更新する代わりに、どうすればそれを行うことができますか? それは可能ですか?

ありがとうございました

4

3 に答える 3

5

次のコードは、値を整数にキャストして文字列に戻すことにより、先頭のゼロを削除します。

update t
    set col = cast(cast(col as int) as varchar(255))
    where t.col like '0%'
于 2013-02-28T16:09:42.207 に答える
2

以下を使用できます。

update yourtable
set col = substring(col, 2, len(col)-1)
where left(col, 1) = '0'

デモで SQL Fiddle を参照してください

于 2013-02-28T16:12:49.473 に答える
1

すべてが除外されるまで、このクエリを実行します...

UPDATE Table SET Column=RIGHT(Column, LEN(Column)-1) WHERE Column LIKE '0%';

[編集] ゴードンのアプローチの方がおそらく優れています。

于 2013-02-28T16:11:09.420 に答える