为了账号安全,请及时绑定邮箱和手机立即绑定

sqlserver2008中自定义函数的问题

sqlserver2008中自定义函数的问题

白板的微信 2018-12-07 06:11:29
数据库中有一个字段,数据类型为date,现在我想定义一个函数,输入参数为date类型,返回的数据为与输入参数相同年份和月份的数据行数,在函数体中使用了count函数。 create function [dbo].[Time](@times date)returns intas begin  return( select COUNT(*) from Question where datediff(yy,PublishedTime,@times)=0 and DATEDIFF(mm,PublishedTime,@times)=0) end 使用语句为: select dbo.Time('2012-12-20') from Question 但是为题是查出来的结果数量为表Question中数据的行数。为什么会查询出那么多行的数据,而不是单一的一行数据?
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

select dbo.Time('2012-12-20')

from Question

你这样的意思就是对Question表中的每一行都调用了那个Time函数

只要select dbo.Time('2012-12-20') 就行了啊

查看完整回答
反对 回复 2019-01-07
?
呼如林

TA贡献1798条经验 获得超3个赞

直接 “select dbo.Time('2012-12-20')” 这样应该就可以了,不需要再从question表中去查询,因为函数中已经查询过了!

查看完整回答
反对 回复 2019-01-07
  • 2 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信