0

返される数字の桁を切り取る必要があります。X0006、X0130、X1030 のようなリストにそれらがあります。X と 0 を取り出して 6,130,1030 を返す必要があります。私はこのようにRTRIMを試しました。私が何をする必要があるかについて誰にもアイデアがありますか? 私は何か簡単なものを見逃していると確信しています。

ありがとう

4

3 に答える 3

1

これは、あなたが求めていることと、将来の数字の取得の必要性を正確に実行する、作成できる関数です。

CREATE FUNCTION [dbo].[fn__getDigits] 
( 
@string VARCHAR(50) 
) 
RETURNS int 
AS 
BEGIN 
-- declare variables 
DECLARE 
@digits VARCHAR(50), 
@length INT, 
@index INT, 
@char CHAR(1) 

-- initialize variables 
SET @digits = '' 
SET @length = LEN(@string) 
SET @index = 0 

-- examine each character 
WHILE (@length >= @index) 
BEGIN 
SET @char = SUBSTRING(@string, @index, 1) 
SET @index = @index + 1 

-- add to the result if the character is a digit 
IF (48 <= ASCII(@char) AND ASCII(@char) <= 57) 
BEGIN 
SET @digits = @digits + @char 
END 
END 

-- return the result 
RETURN cast(@digits as int)
END
GO


select [dbo].[fn__getDigits]('X0006')
select [dbo].[fn__getDigits]('X0130')
select [dbo].[fn__getDigits]('X1030')
于 2013-09-19T02:54:09.447 に答える
0

置換を使用して X を取り除き、Excel にコピー/貼り付けして、前のゼロを取り除きました。

于 2013-09-23T04:10:37.663 に答える