有一些方法可以在SQL中实现无限循环?我想对有的像选择里面一个又一个,递归......(也许我讲的愚蠢)SQL中的无限循环?
4
A
回答
11
你可以做一个CTE递归无限循环:
;with rec as
(
select 1 as n
union all
select n + 1
from rec
)
select n
from rec
默认情况下,SQL服务器将停止在100;你可以让它永远循环下去:
option (maxrecursion 0)
5
1
DECLARE @number INT = 3
WHILE (@number = 3)
BEGIN
PRINT @number
END
2
我无法想象,你为什么会想这样做,但它要依赖在您的实现的(SQL Server,Oracle,MySQL ...)支持的循环结构中。
例如,在SQL Server中,您将以任何命令式语言的方式编写无限循环。粗略地说:
DECLARE @x INT = 0
WHILE (@x = 0)
BEGIN
PRINT @x
END
0
你不能创建一个像SQL这样的声明语言的无限循环,因为编译器不会让你。你会得到错误信息和/或它不会运行。
您需要像JNK建议的那样,使用SQL来顺序编写某些内容。
3
这应该在Oracle工作
select * from (select level x from dual connect by level >=0)
外部选择是需要避免一些优化与客户端和数据库的一些组合发生。
不完全确定level >= 0
部件是否按预期工作,因为通常情况下,您只能将其与level <= 50
之类的东西一起使用以获取固定行数。
+0
我发现这个解决方案在自动测试逻辑时非常有用,它负责正确地查杀长时间运行的查询。没有它,我将不得不找到一些大表或交叉连接许多表,这取决于数据库中的数据,并导致不稳定和脆弱的测试。 – 2014-10-01 09:04:43
相关问题
- 1. 无限循环
- 2. 无限循环
- 3. 无限循环
- 4. 无限循环
- 5. (?无限)循环
- 6. 从SQL到HQL的Hibernate - 无限循环?
- 7. 无限循环中的backgroundworker
- 8. 无限循环中的jQuery
- 9. htaccess中的无限循环
- 10. FreeBSD中的无限循环
- 11. Java中的无限循环
- 12. Python中的无限循环
- 13. C++中的无限循环
- 14. while(1)循环无限循环的TAC
- 15. 的Javascript while循环无限循环
- 16. SQL Server:存储过程无限循环
- 17. 无限循环在Matlab中
- 18. 无限循环在Java中
- 19. 无限循环在java中
- 20. 无限循环中MVVM
- 21. 无限循环中而
- 22. .animate无限循环
- 23. Prolog无限循环
- 24. Haskell无限循环
- 25. 无限循环inOverrideUrlLoading
- 26. MPLAB无限循环
- 27. Arduino无限循环
- 28. jQuery无限循环
- 29. JOptionPane无限循环
- 30. Littleproxy无限循环
+1 - 比其他人(包括我的)更原始! – JNK 2011-05-10 19:01:14
你需要添加'OPTION(MAXRECURSION = 0)'使这个无限,对不对? – 2011-05-10 19:03:58
事实证明,这只适用于SQL 2005或更高版本 - 对于SQL 2000: – jiaoziren 2012-05-28 02:27:59