Меня очень раздражает этот простой запрос ...
Мне нужно добавить смещение к varchar, если это число и ничего не делать, если это не так.
По этой причине я создал следующеефункция в SQL-сервере.Затем я извлекаю ответ: select dbo.OffsetKPL("100",200)
Однако это не работает, я получаю сообщение об ошибке
Сообщение 207, Уровень 16, Состояние 1, Строка 1
Недопустимоимя столбца '100'.
Код функции следующий:
ALTER FUNCTION [dbo].[OffsetKPL](
@kpl varchar(20)
,@offset int = 0
)
RETURNS varchar(20)
AS
BEGIN
DECLARE @uitkomst varchar(20);
set @uitkomst = @kpl;
if not(@offset = 0) begin
if (IsNumeric(@uitkomst) = 1) begin
set @uitkomst = cast((cast(@kpl as int) + @offset) as varchar);
end;
end;
RETURN @uitkomst;
END
Что не так?нигде не говорится, что IsNumeric не принимает переменную.