加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

【SQLServer】-如何实现定义变量,完成数据库的查询操作

发布时间:2020-12-12 14:07:19 所属栏目:MsSql教程 来源:网络整理
导读:--defined a variabledeclare @changzhanid varchar(10) declare @ertuid varchar(10) declare @taskid varchar(10) declare @meteraddress varchar(30)declare @tasktable varchar(12)declare @sql varchar(500)declare @starttime varchar(500)declare @en
--defined a variable
declare @changzhanid varchar(10) 
declare @ertuid varchar(10)  
declare @taskid varchar(10) 
declare @meteraddress varchar(30)
declare @tasktable varchar(12)
declare @sql varchar(500)
declare @starttime varchar(500)
declare @endtime varchar(500)
declare @dataitem varchar(500)
set @meteraddress='12010020'				------------Meter address
set @starttime='2013-01-01 14:00:00'				------------Query Startime
set @endtime='2013-04-29 14:30:00'				------------Query Endtime
set @dataitem='acq_date,ACQ_10,ACQ_12,ACQ_13'		------------Query Dataitem
begin
set @changzhanid=(select ertutask_record.changzhanid from ertutask_record inner join meter_record 
on  ertutask_record.changzhanid=meter_record.changzhanid and ertutask_record.ertu_id=meter_record.ertuid 
where meter_record.meter_code=@meteraddress )
set @ertuid=(select ertutask_record.ertu_id from ertutask_record inner join meter_record 
on  ertutask_record.changzhanid=meter_record.changzhanid and ertutask_record.ertu_id=meter_record.ertuid 
where meter_record.meter_code=@meteraddress)
set @taskid=(select ertutask_record.task_no from ertutask_record inner join meter_record 
on  ertutask_record.changzhanid=meter_record.changzhanid and ertutask_record.ertu_id=meter_record.ertuid 
where meter_record.meter_code=@meteraddress )
end

set @tasktable='task_'+@changzhanid+'_'+@ertuid+'_'+@taskid
set @sql='select  meter_record.customerid,meter_code,meter_record.meter_name,'+@tasktable+'.'+@dataitem +
' from '+@tasktable +' inner join meter_record on  '+@tasktable+'.changzhanid=meter_record.changzhanid and '
+@tasktable+'.ertuid=meter_record.ertuid where '+@tasktable+'.acq_date between ''' +@starttime+'''  and '''
+@endtime+''''

exec (@sql)

1.在这个SQL中有几个重点,其中 就是将一个查询的table的名字作为一个变量

2.在查询的时候,需要加入时间,时间这个变量,需要加‘’如何在用字符相加的情况下,加入‘’号。


首先在我的文档中,我所查询的为task_1_2_3这样的表格,而1,2,3 这几个数字代表的意义不相同, 分别是

declare @changzhanid varchar(10) 
declare @ertuid varchar(10)  
declare @taskid varchar(10)
这三个的代号,由于在变化,所以,将这些也写成变量。
为了能够查询到结果,可以简化的通过exec的方式写出。
而这三个值也不是通过自己赋值变量,而是从其他的表格中查询出来的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读