在 SQL Server 中,您可以从如下序列中选择下一个值:
select next value for MY_SEQ
如果您不抑制要从中选择的表,则对于每一行,将输出下一个值:
select next value for MY_SEQ
from MY_TABLE
[2020-09-08 15:47:34] 350 rows retrieved starting from 1 in 102 ms (execution: 62 ms, fetching: 40 ms)
我该如何选择下一个n
序列的值?
在 Oracle 中,这看起来像这样:
select MY_SEQ.nextval
from (
select level
from dual
connect by level < 10
)
我尝试过这样的事情:
select top(10) next value for MY_SEQ
但结果是:
[S0001][11739] 如果设置了 ROWCOUNT 选项,或者查询包含 TOP 或 OFFSET,则无法使用 NEXT VALUE FOR 函数。
我想我可以创建一个临时表n
行并从中进行选择,但这并不是一个特别优雅的解决方案。
我认为您正在寻找系统存储过程“sp_sequence_get_range”
要从序列中获取接下来的 10 个值,会是这样的
DECLARE @range_first_value_output sql_variant ;
EXEC sys.sp_sequence_get_range
@sequence_name = N'MY_SEQ'
, @range_size = 10
, @range_first_value = @range_first_value_output OUTPUT ;
SELECT @range_first_value_output AS FirstNumber;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)