alter FUNCTION [dbo].[FN_asgetsql](@kri int,@jri int)
RETURNS varchar(max)
AS
BEGIN
declare @colx nvarchar(max);
set @colx='';
select @colx=@colx+'sum(case when FCheckDate>='''+cast(kri as nvarchar(15))+'''
and FCheckDate<='''+cast(jri as nvarchar(15))+''' then zjj end) as '''+zhi+''','
from as_time where mytype='月' and myid>@kri and myid<@jri
set @colx=left(@colx,LEN(@colx)-1)
RETURN(@colx)
END
GO
select dbo.FN_asgetsql(1,2)
消息 537,级别 16,状态 5,第 1 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
请问错在哪里了,如果是一个参数是正确的
------解决思路----------------------
在left(@colx,LEN(@colx)-1)这里出错,
len(@colx)=0,导致left(@colx,-1)报错。
------解决思路----------------------
同意1楼,应该加个判断
------解决思路----------------------
select LEN(@colx)-1 出来,看看值是什么