首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择不带top,然后假定top N

选择不带top,然后假定top N
EN

Stack Overflow用户
提问于 2017-02-08 06:11:59
回答 1查看 43关注 0票数 0

我的程序连接到SQL Server。该程序有很多Select语句。如果程序执行

代码语言:javascript
复制
Select * from MyTable

我希望SQL服务器只返回前200行,而不是返回所有行。

仅当程序显式执行时

代码语言:javascript
复制
Select top all * from MyTable

然后,SQL引擎返回所有行。

SQL Server中是否有执行此操作的选项?若否,如何推行?

EN

回答 1

Stack Overflow用户

发布于 2017-02-08 06:18:23

您可以使用类似于以下内容:

代码语言:javascript
复制
DECLARE @topCount INT = 5;

SELECT TOP(@topCount) * FROM sys.objects;

现在有了一个为所有人做的逻辑。

代码语言:javascript
复制
SET @topCount=0; --or NULL, or -1 ...

SELECT TOP(CASE WHEN ISNULL(@topCount,0)<=0 THEN 999999999 ELSE @topCount END) * FROM sys.objects;

注意

您必须意识到,没有ORDER BYTOP将导致相当不可预测的结果。哪些行是表的前5个?没有固有的秩序。

更新:

我吃得太快了。当没有指定TOP时,您希望将此行为设为默认行为。抱歉,这是不可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42100999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档