SQL 関数を使用して VAT 番号のプレフィックスを返そうとしています。これらの番号の一部の変更、国による違い、およびデータベースの誤りにより、プレフィックスの長さは 0 ~ 4 文字と異なります。したがって、私の関数の入力は文字列であり、数字ではなく数字のプレフィックスが付いています。たとえば、ES012345678 の場合、ES のみを返します。
そのための関数を作成しましたが、入力が例のようであっても失敗し、NULL のみを返します。
私の間違いがどこにあるか知っている人はいますか?
ここに私のSQLコードがあります:
ALTER FUNCTION [dbo].[returnPreOfVat]
(
-- Add the parameters for the function here
@VATstring varchar
)
RETURNS varchar
AS
BEGIN
-- Declare the return variable here
DECLARE @Result varchar
DECLARE @char varchar(2)
DECLARE @counter int
SET @counter =1;
SET @char = '';
WHILE (@counter < 5) --check some from the front
BEGIN
SET @char = SUBSTRING(@VATstring, @counter,1); --get next char from front
IF(ISNUMERIC(@char)<>1) -- not numeric
BEGIN
SET @Result = @Result + @char;
END
SET @counter=@counter+1;
END
-- Return the result of the function
RETURN @Result
END