SQL server 动态查询的实际操作步骤

数据库 SQL Server
我们今天主要向大家讲述的是SQL server 动态查询,与获取想得到的返回值的结果,以下就是文章的主要内容的详细介绍。

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

这时,我们可考虑用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 动态查询的介绍,望你能有所收获。

【编辑推荐】

  1. SQL Server数据转换服务的妙招之一
  2. SQL Server数据库的妙招用法
  3. SQL Server数据转换服务利用与导入式格式的描述
  4. 确维护Sql Server表索引的2个步骤b
  5. SQL ServerCoalesce的大量使用的具体描述

 

责任编辑:佚名 来源: 中文业界资讯站
相关推荐

2010-07-21 15:22:07

2010-07-06 09:20:30

SQL Server查

2010-07-02 11:10:56

SQL Server

2010-07-23 14:26:37

SQL Server存

2010-07-21 09:28:34

SQL Server

2010-07-05 10:15:40

SQL Server

2010-04-16 17:17:31

Oracle访问

2010-07-07 11:03:21

SQL Server索

2010-06-17 10:50:53

SQL Server数

2010-05-13 16:21:58

2010-05-26 14:06:44

MySQL查询

2010-05-27 10:35:09

查询MySQL数据

2010-05-17 16:52:14

MySQL limit

2010-06-09 11:40:32

MySQL SQL 语

2010-03-12 15:29:19

Pythonexe

2010-07-14 17:56:13

SQL Server

2010-07-23 09:25:50

SQL Server导

2010-06-28 12:39:14

SQL Server数

2010-12-07 09:20:44

MySQL limit

2010-07-12 09:52:24

删除 SQL Serv
点赞
收藏

51CTO技术栈公众号