我有这个Oracle代码结构,我正在尝试转换为SQL Server 2008 (注意:我在方括号'[]'中使用了通用名称,封闭的列名和表名,并做了一些格式化以使代码更多可读):
SELECT [col#1], [col#2], [col#3], ..., [col#n], [LEVEL]
FROM (SELECT [col#1], [col#2], [col#3], ..., [col#n]
FROM [TABLE_1]
WHERE ... )
CONNECT BY PRIOR [col#1] = [col#2]
START WITH [col#2] IS NULL
ORDER SIBLINGS BY [col#3]
Run Code Online (Sandbox Code Playgroud)
什么是上述代码的SQL Server等效模板?
具体来说,我正在努力与LEVEL和'ORDER SIBLINGS BY'Oracle构造.
注意: 上面的"代码"是一组Oracle过程的最终输出.基本上,'WHERE'子句是动态构建的,并根据传递的各种参数而变化.以"CONNECT BY PRIOR"开头的代码块是硬编码的.
以供参考:
SQL SERVER文章中关于ORACLE的连接的模拟很接近,但它没有解释如何处理'LEVEL'和'ORDER SIBLINGS'结构.......我的思绪在变化!
SELECT name
FROM emp
START WITH name = …Run Code Online (Sandbox Code Playgroud)