文字列を受け取り、数値以外の文字をテーブルから取得した 2 つの数字に置き換える必要がある関数を作成しています。これは、文字列を調べて数字以外の文字を見つけるために使用するコードです。
SET @string = '1a2b3c4d'
SET @wcount= 0
SET @index = 1
SET @len= LEN(@string)
WHILE @index<= @len
BEGIN
SET @char = SUBSTRING(@string, @index, 1)
IF @char LIKE '%[a-z]%'
PRINT 'char ' + CONVERT(varchar(10), @index)
ELSE
PRINT @char
SET @index= @index+ 1
END
出力は次のとおりです
1
char 2
2
char 4
3
char 6
4
char 8
ここで、数字以外の文字を見つけたら、select によってテーブルから取得した 2 つの数字に置き換える必要があります。例えば
SELECT @temp = REPLACEMENT FROM Conversion_Tab WHERE EXPR = @char
結論として、次の文字列 '1a2a3a4a' があり、'a' の置換が '88' の場合、結果の文字列は '188288388488' になります。
助けてくれてありがとう。
さよなら!