小编Jer*_*ore的帖子

我可以在T-SQL数据库中进行递归SELECT

我不确定在SQL Server的数据库中是否可以这样做?

说,我有一张桌子:

id INT
nm NVARCHAR(256)
cid INT --references [id]
Run Code Online (Sandbox Code Playgroud)

和假设数据:

id   nm       cid
1    Name 1   0
2    Name 2   0
3    Name 3   1
4    Name 4   3
5    Name 5   2
6    Name 6   4
7    Name 7   2
Run Code Online (Sandbox Code Playgroud)

选择的逻辑应如下:

  1. 说,我们有原始ID,我们称之为N.

  2. 然后我们有一个查找ID,我们称之为X.然后我们做:

    SELECT [cid] FROM [TableName] WHERE [id]=X
    
    Run Code Online (Sandbox Code Playgroud)

并检查结果是否等于N.如果是,则返回该记录的[nm].如果结果为0,那么我们返回Null.如果结果是别的我们做同样的选择,除了X现在是结果值.

我显然可以用C#来做这件事,但我很好奇是否有可能在纯SQL语句中结束?

PS.只是用上面的表格来说明这一点,如果N是1而X是6,那么我们得到:

SELECT [cid] FROM [TableName] WHERE [id]=6    --results is 4 (not N or 0, then continue)
SELECT [cid] FROM [TableName] WHERE [id]=4    --results is 3 (not …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server recursion sql-server-2008

7
推荐指数
1
解决办法
3158
查看次数

标签 统计

recursion ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1