关于SQL自定义表值函数的问题
我写了一个表值函数,为什么unionall之前的语句一直报错,而后面的调用就能过?如果有问题应该怎样去修改?第一个语句报错信息:Incorrectsyntaxnearth...
我写了一个表值函数,为什么union all 之前的语句一直报错,而后面的调用就能过?如果有问题应该怎样去修改?
第一个语句报错信息:Incorrect syntax near the keyword 'CONVERT'.
select * from dbo.F_Report_MenthLy(
CONVERT(varchar(10),GETDATE(),120),
CONVERT(varchar(10),GETDATE(),120)
)
union all
select * from F_Report_MenthLy('2014-12-01','2014-12-31') 展开
第一个语句报错信息:Incorrect syntax near the keyword 'CONVERT'.
select * from dbo.F_Report_MenthLy(
CONVERT(varchar(10),GETDATE(),120),
CONVERT(varchar(10),GETDATE(),120)
)
union all
select * from F_Report_MenthLy('2014-12-01','2014-12-31') 展开
1个回答
展开全部
貌似表值函数的参数不能使用函数。你可以先把值计算好了,再调用,类似:
declare @d1 varchar(10)
declare @d2 varchar(10)
set @d1 = CONVERT(varchar(10),GETDATE(),120)
set @d2 = CONVERT(varchar(10),GETDATE(),120)
select * from dbo.F_Report_MenthLy(@d1,@d2)union allselect * from F_Report_MenthLy('2014-12-01','2014-12-31')
追问
因为我的语句是要在视图中实现的,可视图里定义不了变量吧。
追答
这个好象真不行。为什么要视图返回,用存储过程也一样吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询