对这个简单的查询感到非常恼火......
我需要向 varchar 添加一个偏移量,如果它是一个数字并且什么都不做,它不是。
出于这个原因,我在 SQL-server 中创建了以下函数。然后我提取答案:
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 不接受变量。