TSQL SELECT TOP(如果flag = true则为Limit,ELSE无限制)

时间:2016-01-30 18:11:37

标签: tsql

我有一个存储过程,如果设置了输入参数标志,我想限制返回的记录数。如果flag为false,我希望SELECT语句返回无限数量的记录。我希望以最具成本效益的方式实现这一目标。有点像:

SELECT CASE WHEN @flagLimit THEN TOP(@limit) 
                 ELSE [unlimited] 
FROM myTable...

3 个答案:

答案 0 :(得分:2)

也许if声明有效?您可以有条件地选择不同的语句来执行,具体取决于是否设置了标志。像这样:

if @flaglimit is not null
select top (@limit) * from myTable
else
select * from myTable

答案 1 :(得分:1)

如果您愿意使用百分比,那么

$('form').find(':text,textarea,select').filter(':visible:first')

你可以为所有

传递100

如果你必须传递一个数字然后你可以传递一个0为100%,任何不同的东西根据计数(*)计算百分比,但是你必须运行基本查询两次

答案 2 :(得分:1)

IF @limit IS NULL

SELECT @limit = COUNT(1)FROM myTable

SELECT TOP(@limit)FROM myTable