SQLserver动态查询的实际操作步骤

此文章主要是向大家讲述的是SQL server 动态查询,与获取想得到的返回值的结果,在编写sql语句或是存储过程的实际操作过程中,一般的情况下都会遇到语句中表名或某一字段名不确定,要根据条件来。

创新互联公司是一家专注网站建设、网络营销策划、重庆小程序开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10多年以来,已经为近千家成都木托盘各业的企业公司提供互联网服务。现在,服务的近千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。

这时,我们可考虑用SQL 提供的sp_executesql 函数,,他可执行动态的修改,删除,查询功能,至于此函数的详细解释可到sql帮助文档中去查看,下面我将举一个SQL server 动态查询的列子,包括表名及想查询的字段均不确定:

 
 
 
  1. tab: 
  2. (ID int) (A numeric(9,2)) (B numeric(9,2)) 
  3. 1 20.30 33.12 
  4. 2 34.32 22.66 
  5. 3 45.54 99.19 

完成任务:

在不确定表名,及查询字段的情况下,根据传入的表名及字段及查询条件,获得对应返回结果:

1.seq条件

2.字段名称(A或B)

3.表名

要求函数返回值类型为numeric(9,2), 列如根据输入参数2取对应字段的值返回

做法如下:

 
 
 
  1. declare @tab varchar(10), @rowname varchar(10) ,@seq int 
  2. declare @sql Nvarchar(1000) 
  3. declare @v numeric(9,2) 
  4. set @rowname='A'; 
  5. set @seq=2 ; 
  6. set @tab='tab'; 
  7. set @sql='select @a='+@rowname+' from '+@tab+' where id='+rtrim(@seq) 
  8. exec sp_executesql @sql,N'@a numeric(9,2) output',@v output 
  9. select @v 

结果

34.32

提醒:

对于动态表名及字段使用非常简单,但获取结果使用动态语句是有一定规则的,如上面的列子,需要把表名声明成Nvarchar的,然后执行动态语句时,声明其动态语句中变量前也要加N ,如N'@a

 
 
 
  1. numeric(9,2) output' 

以上的相关内容就是对SQL server 动态查询的介绍,望你能有所收获。

网站名称:SQLserver动态查询的实际操作步骤
本文路径:http://www.shufengxianlan.com/qtweb/news32/518482.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联