SQL Server 树形表结构非循环递归查询
小白浏览:6712019-02-26 14:33:57本文累计收益:0我也要赚钱
一、表结构创建如下:
CREATE TABLE [dbo].[Areas] (
  [Id] bigint  IDENTITY(1,1) NOT NULL,
  [Area] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
  [PId] bigint  NULL
)
二、通过子节点查询父节点
WITH 
TREE AS( 
    SELECT * FROM Areas 
    WHERE id = 6  -- 要查询的子 id 
    UNION ALL 
    SELECT Areas.* FROM Areas, TREE 
    WHERE TREE.PId = Areas.Id
) 
SELECT Area FROM TREE
三、通过父节点查询子节点
WITH 
TREE AS( 
    SELECT * FROM Areas 
    WHERE id = 7  -- 要查询的子 id 
    UNION ALL 
    SELECT Areas.* FROM Areas, TREE 
    WHERE TREE.Id = Areas.PId
) 
SELECT Area FROM TREE

 

评论列表
发表评论
+ 关注