我正在尝试使用 SQL 函数返回增值税号的前缀。由于这些数字的一些变化和国家的差异以及数据库中的错误,前缀的长度从 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