少し問題が発生しました:ms sqlの数値から「0」を変更/減算する必要があります。小さな例:
私は 1000008448 を得ました そしてそれはある必要があります: 100008448 テーブル全体で...
誰もがそれを行う方法を知っていますか? (私は MS SQL のスキルがありません :( )
編集:その他の例:
100323 は 10323 になります 10233 は 1233 になります 10000 は 1000 になります...
少し問題が発生しました:ms sqlの数値から「0」を変更/減算する必要があります。小さな例:
私は 1000008448 を得ました そしてそれはある必要があります: 100008448 テーブル全体で...
誰もがそれを行う方法を知っていますか? (私は MS SQL のスキルがありません :( )
編集:その他の例:
100323 は 10323 になります 10233 は 1233 になります 10000 は 1000 になります...
x0
以下はあなたが望むことをするかもしれません(それは最上位桁をに「置き換えます」x
):
UPDATE table SET col=col
-power(10, floor(log10(col)))*floor(col/power(10, floor(log10(col))))
+power(10, floor(log10(col))-1)*floor(col/power(10, floor(log10(col))))
sqlFiddleを参照してください:)
これは、これまでに投稿したすべての例で機能します。これは文字列操作として実行されますが、SQL Server よりも優れたツールを使用することをお勧めします。
declare @T table (Frm int not null,Too int not null)
insert into @T (Frm,Too) values
(1001, 101),
(1000008448, 100008448),
(100323, 10323),
(10233, 1233),
(10000, 1000)
select
CONVERT(int,SUBSTRING(Frm,1,1) + SUBSTRING(Frm,3,20)) Frm,Too
from
(select CONVERT(varchar(20),Frm) Frm,Too from @T) t
結果:
Frm Too
----------- -----------
101 101
100008448 100008448
10323 10323
1233 1233
1000 1000
しかし、実際のデータには、これが機能しないケースが他にもあることは間違いありません。
update yourtable set
yourcolumn=
cast(stuff(cast(yourcolumn as varchar),
CHARINDEX('0',cast(yourcolumn as varchar)),1,'')
as int)
where CHARINDEX('0',cast(yourcolumn as varchar))>0
数値フィールドですか?あなたの数字はすべて1000000000の数字ですか?
もしそうなら、
UPDATE table
SET mycol = mycol - 900000000
問題の最初の言い回しによると、次の SQL ステートメントが必要になります。
update <table>
set <field> = 100008448
where <field> = 1000008448;
もちろん、テーブル名とフィールド名に置き換えます。
上記は特定の問題に対する回答であり、一般的な問題に対する回答ではないため、問題を正しく表現していない可能性があります。