让这个简单的查询变得非常恼火......
我需要添加一个偏移量到一个varchar,如果它是一个数字,并且什么也不做。
因此,我在SQL服务器中创建了以下函数。 我然后提取的答案: select dbo.OffsetKPL("100",200)
IsNumeric在SQL服务器中不起作用
然而,这并不工作,我得到的错误
消息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不接受变量。
使用“100”而不是“100”? – cairnz 2011-03-24 12:54:47