大家帮帮忙,看看这个存储过程怎么写。

mihi1978 2003-10-17 05:07:36
现在有一个sql 语句。
select s200 for 数据表
where [time]>='2003-8-23' and [time]<'2003-8-24' and
(s200 >100 or s200<50)
现在想改成存储过程。由于时间间隔和,数据取值范围都是变量,还有列名也是变量。我现在写成:
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper double,
@lower double,

as
select @Count =count(@colName) from 密集历史数据表
where [time]< @timeEnd and [time]>= @timeStart and ( @colname< @lower or @colName> @upper)

可是出错。请问大虾们,正确的应该怎么写。
...全文
51 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujohny 2003-10-17
  • 打赏
  • 举报
回复
不要加,一加你语句就是错的了,代码就是下面这样,你可以试试就知道了:
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper float,
@lower float

as
exec('select @Count =count('+@colName+') from 密集历史数据表 where [time]< @timeEnd and [time]>= @timeStart and ( '+@colname+'< @lower or '+@colName+'> @upper)')
mihi1978 2003-10-17
  • 打赏
  • 举报
回复
解决了,大家说得都很对,给了我很多帮助。但是有一个问题没有考虑到。即引号问题。
@count,@timestart,@timeEnd旁边需要加三个单引号。呵呵。
谢谢大家,下面加分
HenanBoy 2003-10-17
  • 打赏
  • 举报
回复
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper float,
@lower float
as
exec('select @Count =count('+ltrim(rtirm(@colName))+') from 密集历史数据表 where [time]< @timeEnd and [time]>= @timeStart and ( '+@colname+'< @lower or '+@colName+'> @upper)')

mihi1978 2003-10-17
  • 打赏
  • 举报
回复
,这个我看到了。可是那么多参数,除了@colname好像其他的都放到引号里边了,这样是不是不对?
LoveSQL 2003-10-17
  • 打赏
  • 举报
回复
写成动态的sql语句就可以了。
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper float,
@lower float,

as
declare @sql nvarchar(8000)
set @sql='select @Count =count('+@colName+') from 密集历史数据表 where [time]< '+@timeEnd +'and [time]>='+ @timeStart+' and ( '+@colname+'< '+@lower+' or '+@colName+'>'+ @upper+')')
exec sp_executesql @sql,n'@Count int output','@Count output'
select @Count
mihi1978 2003-10-17
  • 打赏
  • 举报
回复
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper float,
@lower float
也是参数,不需要放在小引号外边吗?
yoki 2003-10-17
  • 打赏
  • 举报
回复
注意
as前多了一个","
yoki 2003-10-17
  • 打赏
  • 举报
回复
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper float,
@lower float
as
exec('select @Count =count('+@colName+') from 密集历史数据表 where [time]< @timeEnd and [time]>= @timeStart and ( '+@colname+'< @lower or '+@colName+'> @upper)')
yujohny 2003-10-17
  • 打赏
  • 举报
回复
--SQL中没有double数据类型,改为Float
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper float,
@lower float,

as
exec('select @Count =count('+@colName+') from 密集历史数据表 where [time]< @timeEnd and [time]>= @timeStart and ( '+@colname+'< @lower or '+@colName+'> @upper)')
qdubit 2003-10-17
  • 打赏
  • 举报
回复
关注!
yujohny 2003-10-17
  • 打赏
  • 举报
回复
create procedure sp_LoadExceedCount
@Count int OUTPUT,
@colName varchar(30),
@timeStart smalldatetime,
@timeEnd smalldatetime,
@upper double,
@lower double,

as
exec('select @Count =count('+@colName+') from 密集历史数据表 where [time]< @timeEnd and [time]>= @timeStart and ( '+@colname+'< @lower or '+@colName+'> @upper)')
不需要开发,0行代码接口服务,sql编程,只要会sql就会接口服务,让后端变得更简单,简单4步短短5分钟,立马上手,java小白也可以接口。订阅课程后可以免费获取发布版进行使用和测试。 0行代码服务的需要来源案例一,当时有个项目,有400张表,都是管理系统,单表维护的内容较多,当时的项目团队是13人,前后端都,那时候还没有springboot,用的是ssm,mybatis刚出来,有了替代hibernate的趋势,ifelse了一堆又一堆,实体类也是,当时的后端分了7层☒,天天加班干这活,复制粘贴,很容易犯错,实体类多人引用修改,真的是废了很大的劲……案例二,也是一个比较大的项目,两千万多万那种,当时为了拿项目,需要快速实现原型给客户看,要求比较高,虽说是原型但是数据全部需要实时,这时候就需要大量编数据接口,同样编接口这件事难度倒是不大,但是量大,编过程手很容易出错……案例三,以前管理的团队主要做移动端开发,里面的项目会涉及到推送,管理系统,数据采集与同步,总之很多内容,需要前后端通吃,我不仅需要出方案,设计原型,设计数据库,出报价,沟通需求,还要后端框架,数据接口与数据采集,开发前端(web端),移动端,管理所有项目,但是那时候招的人只会移动端,实在是忙不过来,我就想能不能有个框架让不会java的人能接口,因为移动端sqlite总是会用的,也就是说sql不是难点……基于以上三点需求的积累,我利用业余时间了一个后端框架,完成了这样的需求,刚开始是需要三行代码完成一个接口,经过后面优化,现在不代码也可以实现……  本框架涉及的知识点比较多,目前提供最基础版供大家学习和使用,后期逐步推出框架具体的教程和功能内容,下期我们讲如何在实际项目中通过部署版如何完成所需要的接口编,欢迎大家订阅。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧