关于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')
展开
 我来答
射手幽灵伊
2015-05-25 · TA获得超过2715个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1920万
展开全部

貌似表值函数的参数不能使用函数。你可以先把值计算好了,再调用,类似:

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')
追问
因为我的语句是要在视图中实现的,可视图里定义不了变量吧。
追答
这个好象真不行。为什么要视图返回,用存储过程也一样吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式