MSSQL中深度递归查找简易实现(mssql递归查找)

SQL递归查询(Recursive query),是指使用查询结果作为这结果的输入,将满足指定条件的行形成一个很深层次的嵌套结构,可以查询任意级别的数据层级。

递归查询一般会涉及到查询同一张表、建立关系上下级等各种操作,下面来简单介绍如何进行MSSQL的递归查询:

首先,建立相关的表结构,例如:

“`sql

CREATE TABLE [yourTable] (

[id] INT,

[value] VARCHAR(10),

[parentid] INT

)


接着,建立上下级关系,填入相关数据,例如:

```sql
INSERT INTO [yourTable] VALUES
(1, 'ABC', NULL),
(2, 'DEF', 1),
(3, 'GHI', 2),
(4, 'JKL', 3)

然后,定义一个递归函数,来获取上下级关系:

“`sql

CREATE FUNCTION [getChild] (@input INT)

RETURNS @finaltable TABLE (

[id] INT,

[value] VARCHAR(10)

)

AS

BEGIN

INSERT INTO @finaltable

SELECT [id], [value]

FROM [yourTable]

WHERE [parentid] = @input

IF (SELECT COUNT(1) FROM [yourTable] WHERE [parentid] = @input) > 0

BEGIN

INSERT INTO @finaltable

SELECT [id], [value]

FROM [getChild](SELECT [id] FROM [yourTable] WHERE [parentid] = @input)

END

RETURN

END


最后,使用上面声明的递归函数,即可执行深度搜索查询:

```sql
SELECT * FROM [getChild](1)

最终查询结果如下所示:

| id | value |

|—-|——-|

| 2 | DEF |

| 3 | GHI |

| 4 | JKL |

通过以上简单步骤,可以轻松实现MSSQL中深度递归查询,当查询数据层级增加时,仍可以得到准确的结果。因此,递归查询对于各类树形层级数据获取具有非常重要的意义。


数据运维技术 » MSSQL中深度递归查找简易实现(mssql递归查找)