在 SELECT 语句中对下一个值进行排序

Mr.*_*aze 9 sql oracle

我想在 SQL 形式的多个选择语句中使用相同的序列号,最终将其用作表中的 PK 插入并将多条记录联系在一起。

到目前为止,我只能从双中选择 NEXTVAL:

SELECT TEST_SEQ.NEXTVAL AS SEQ FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

但是,当我将序列包含在多列选择中时,出现此处不允许序列错误。

SELECT col1, co2, col3, (select TEST_SEQ.NEXTVAL) SEQ
FROM table; 
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

a_h*_*ame 8

不要使用子选择:

SELECT col1, co2, col3, TEST_SEQ.NEXTVAL as SEQ
FROM table; 
Run Code Online (Sandbox Code Playgroud)


Moh*_*man 5

如果要从序列对象中选择下一个值,可以使用此 SQL 语句。

SELECT NEXT VALUE FOR [dbo].[seq_Vehicles] AS NextVehicleId
Run Code Online (Sandbox Code Playgroud)

如果要从 SQL 序列中选择多个下一个值,则必须循环调用上述 SQL 语句并将获得的“下一个值”保存在存储中。

您可以使用 (while 循环) 或通过 (光标) 进行循环。