`

SQL TOP子句加变量的问题

SQL 
阅读更多
SQL Server2005开始,TOP子句后可以跟常量或者变量,跟常量时可省略括号,即top(2)和top 2是等价的(注意不加括号时top和2间的空格),top后使用变量时必须使用括号,例:
declare @num int
set @num = 10
select top(@num) * from sys.tables

使用动态SQL为:
declare @num int
set @num = 10
declare @str nvarchar(1000)
set @str = 'select top('+cast(@num as nvarchar(10))+') * from sys.tables'
exec(@str)


关于exec的一些备注:
1.使用exec命令时,括号中只允许包含一个字符变量,或者一个字符串文本,或者字符串变量与字符串文本的串联。不能在括号中使用函数或CASE表达式,所以最好将代码放在一个变量中,再把此变量作为exec命令的参数
2.exec(<string>)不提供接口,因此动态批处理不能访问在调用批处理中定义的局部变量,必须把变量内容串联到字符串中,就像上面的例子一样。上面动态SQL的例子如果写为
set @str = 'select top('+@num +') * from sys.tables';
exec(@str)
则会报错
3.同样的exec也不支持输出参数,如果要把输入放进一个变量,必须先把输入插入一个目标表,然后再从目标表例取值赋给该变量
分享到:
评论

相关推荐

    sqlserver 存储过程中的top+变量使用分析(downmoon)

    总结起来,这个例子展示了在SQL Server存储过程中如何使用变量与`TOP`子句配合来实现动态分页,以及如何通过`SET ROWCOUNT`来代替`sp_executesql`来更安全、高效地达到同样的效果。在实际应用中,应当注意变量类型...

    SQL Server遍历表中记录的2种方法(使用表变量和游标)

    表变量在SQL Server中是一种临时存储数据的结构,它与临时表相似但作用范围更小,仅限于当前批处理或存储过程。以下是一个使用表变量的例子: ```sql DECLARE @temp TABLE (id INT IDENTITY(1, 1), Name VARCHAR(10...

    TIPTOP SQL错误代码

    TIPTOP SQL错误代码是指在使用Informix数据库管理系统时,可能会遇到的一系列错误代码,这些代码帮助用户识别和解决问题。 Informix是一个强大的关系型数据库管理系统,由IBM开发,广泛应用于各种业务环境中。当SQL...

    七种数据库中Select Top的用法

    #### 二、SQL Server 中的 TOP 子句 在 SQL Server 中,可以使用 `TOP` 关键字来限制查询结果集的行数。 ```sql SELECT TOP 10 * FROM table_name ORDER BY column_name DESC; ``` 这条语句会返回表 `table_name`...

    sql语句收藏-精华.doc

    本资源摘要信息涵盖了 SQL 查询语句的基本知识点,包括简单查询、选择列表、FROM 子句、WHERE 子句等。该资源对 SQL 语句的基础知识进行了详细的讲解和示例,旨在帮助读者快速掌握 SQL 查询语句的使用。 一、 简单...

    SQL 随机抽取数据

    在SQL Server中,如果需要从一张表中随机抽取指定数量的数据记录,可以利用`NEWID()`函数结合`ORDER BY`子句来实现这一功能。下面将详细介绍这一过程。 #### 二、`NEWID()`函数解释 `NEWID()`函数是SQL Server中的...

    SQL查询语句使用详解,[收集].pdf

    SQL 查询语句使用详解为学习 SQL 查询语句提供了详细的指导,涵盖了选择列表、FROM 子句、WHERE 子句等基本概念和高级应用。 一、简单查询 简单的 SQL 查询语句只包括选择列表、FROM 子句和 WHERE 子句。它们分别...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    SQL查询语句精华~

    本篇文章将深入探讨SQL查询语句的两个关键组成部分:简单查询和FROM子句。 简单查询主要涉及选择列表、FROM子句和WHERE子句。选择列表允许指定查询的列,FROM子句指定查询的来源,而WHERE子句则设定查询条件。比如...

    SQLserver查询语句大全

    本文档将详细介绍 SQL Server 查询语句的基本结构、选择列表、FROM 子句、WHERE 子句、ORDER BY 子句、LIMIT 子句等基本组件的使用方法和应用场景。 一、 简单查询 简单的 Transact-SQL 查询语句包括选择列表、...

    sql分页 sqlserver中存储过程分页

    - 根据 `@strWhere` 的值决定是否添加 WHERE 子句,并构造出包含 TOP 关键字的临时表 SQL 语句。 - 计算总记录数,通过 `COUNT(*)` 函数并使用 `@strOrderSQL` 来获取。 - 最后,根据 `@pageIndex` 和 `@pageSize...

    sql查询语句详细实例教程

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 1. 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、...

    transact-sql权威指南(pdf)

    2. **查询语句(SELECT)**:详尽解析了如何使用SELECT语句进行数据检索,包括投影(SELECT子句)、选择(WHERE子句)、分组(GROUP BY子句)、排序(ORDER BY子句)和分页(OFFSET-FETCH或TOP子句)。此外,还会...

    SQL查询语句精华及SQL学习的常用资料

    本篇文章将深入探讨SQL查询语句的精华部分,主要包括简单查询的三个方面:选择列表、FROM子句和WHERE子句。 首先,我们来看选择列表。选择列表指定查询的列,可以包含列名、*(代表所有列)、表达式、变量等。例如...

    通用SQL数据库查询语句范例

    在本文中,我们将详细介绍通用 SQL 数据库查询语句范例,包括简单查询、选择列表、FROM 子句、Where 子句等。 一、简单查询 简单的 Transact-SQL 查询只包括选择列表、FROM 子句和 Where 子句。它们分别说明所查询...

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

     书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中的各种问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。本书内容丰富、文字简洁明快,列举的实例具有一定的难度,而且实用性较...

    SQL SERVER 将XML变量转为JSON文本

    然而,值得注意的是,从SQL Server 2016开始,内置的JSON支持已经增强,可以直接使用内置的`FOR JSON`子句将查询结果转换为JSON,无需编写自定义函数。例如: ```sql SELECT * FROM [dbo].[PivotExample] FOR JSON ...

    sqlserver+group by分组查询分页存储过程

    然而,在较旧的SQL Server版本中,可能需要更复杂的查询结构,如在给定的代码示例中所示,使用了动态SQL和变量来构建分页查询。 具体而言,`usp_PagingLarge`存储过程通过以下步骤实现分页: 1. **解析输入参数**...

Global site tag (gtag.js) - Google Analytics