изменить функцию sql, удалить первый символ в строке - PullRequest
1 голос
/ 17 июля 2010

Я хочу изменить следующую функцию «извлечения чисел» ниже, чтобы проверить, является ли первое число в выводе «1», если это так, удалите «1» перед отображением вывода.Спасибо!

Отл.

Вход: QW 1 RT 309
Выход: 309

create

function [dbo].[ExtractNumbers](@Numbers nvarchar(2000)) 
returns

nvarchar(2000) 
as

BEGIN

declare

@NonNumericIndex int 
set

@NonNumericIndex = PATINDEX('%[^0-9]%',@Numbers) 
WHILE

@NonNumericIndex > 0 
begin



SET

@Numbers = REPLACE(@Numbers,SUBSTRING(@Numbers,@NonNumericIndex,1),'') 
SET

@NonNumericIndex = PATINDEX('%[^0-9]%',@Numbers) 

SET

end



return

@Numbers 
END

1 Ответ

2 голосов
/ 17 июля 2010
create function [dbo].[ExtractNumbers](@Numbers varchar(2000)) returns nvarchar(2000) as  
begin
   declare @NonNumericIndex int 
   set @NonNumericIndex = patindex('%[^0-9]%',@Numbers) 
   while @NonNumericIndex > 0 
   begin
      set @Numbers = replace(@Numbers,SUBSTRING(@Numbers,@NonNumericIndex,1),'') 
      set @NonNumericIndex = PATINDEX('%[^0-9]%',@Numbers) 
   end
   if left(@Numbers, 1) <> '1'
      set @Numbers = right(@Numbers, len(@Numbers) - 1)
   return @Numbers
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...