измените функцию sql, удалите первый символ в строке

Я хочу изменить следующую "функцию" чисел извлечения ниже, чтобы проверить, равняется ли первое число в выводе "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
задан gates 16 July 2010 в 21:06
поделиться

1 ответ

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
2
ответ дан 2 September 2019 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: