SQL Server 2008R2 hierarchyid的使用方法(父子节点、上下级处理)

来源:互联网 发布:华为分享网络wifi密码 编辑:程序博客网 时间:2024/06/06 10:41

SQL Server 2008R2 hierarchyid的使用方法(父子节点、上下级处理)

SQL Server 2008 及以上版本,出了这样一个字段类型,用于处理父子节点、员工上下级等问题。使得此类问题变得更容易处理些。

直接上数据:

--创建表CREATE TABLE tab(    Id hierarchyid NOT NULL,    Name VARCHAR(10) NOT NULL)--插入测试数据insert into tabselect '/','张三' union allselect '/1/','李四' union allselect '/2/','王五' union allselect '/1/1/','赵六' union allselect '/1/2/','何七' union allselect '/1/1/1/','蒋八' union allselect '/1/1/1/1/','王九'--drop table tabselect *,Id.GetLevel()  as '级别' from tab/*Id            name    级别0x            张三    00x58        李四    10x68        王五    10x5AC0        赵六    20x5B40        何七    20x5AD6        蒋八    30x5AD6B0    王九    4*/--查赵六及其下属DECLARE @赵六 hierarchyidSELECT @赵六=Id FROM tab WHERE name='赵六'SELECT *,Id.GetLevel()AS '级别' FROM tab WHERE Id.IsDescendantOf(@赵六)=1/*Id            name    级别0x5AC0        赵六    20x5AD6        蒋八    30x5AD6B0    王九    4*/--查赵六的上级DECLARE @赵六 hierarchyidSELECT @赵六=Id FROM tab WHERE name='赵六'SELECT *,Id.GetLevel()AS '级别' FROM tab WHERE @赵六.IsDescendantOf(Id)=1/*Id            name    级别0x            张三    00x58        李四    10x5AC0        赵六    2*/




1 0
原创粉丝点击