我正在使用11g RDBMS,并在一次采访中询问我使用SQL查询打印1到10个数字如果使用PLSQL则不使用循环,意味着使用选择查询他希望看到结果。
像表一样: 1 2 3答案 0 :(得分:1)
以下两种方法都是SQL Server语法,但您会发现类似其他RDBM的方法:
- ROW_NUMBER()
SELECT TOP 10 ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) FROM sys.objects; --any table with more rows than 10 will do
- 递归CTE
WITH recursiveCounter AS
(
SELECT 1 AS Nr
UNION ALL
SELECT r.Nr+1
FROM recursiveCounter AS r
WHERE r.Nr<10
)
SELECT * FROM recursiveCounter