sql 递归显示所有父节点
1.我先建两个表 一个表示项目及级别 另一个表示项目最后一级中包含内容。两个表的数据如图
CREATE TABLE [dbo].[yq_Project](
[ID] [int] IDENTITY(1,1) primary key,
[cCode] [varchar](32) NOT NULL,
[cPriorCode] [varchar](32) NULL,
[cName] [nvarchar](32) NULL,
[cPersonName] [nvarchar](15) NULL,
[cAddr] [nvarchar](20) NULL,
[cTel] [varchar](20) NULL,
[bHead] [bit] NULL,
seq int )
alter table yq_project add cMemo nvarchar(128) create table yq_Qz_House
(
id int identity(1,1) primary key,
cHuHao varchar(16),
cDongHao varchar(16),
cZuoLuo nvarchar(64),
cJieGou nvarchar(32),
cCengCi varchar(16),
cWeiZhi nvarchar(32),
cChaoXiang nvarchar(16),
iYuanLuo decimal(18,2),
dJunGongShiJian datetime,
cLeiBie nvarchar(16),
iZhuFang decimal(18,2),
iFengBiYangTai decimal(18,2),
iWeiFengYangTai decimal(18,2),
iGongYongFenTan decimal(18,2),
cProCode varchar(32)
)
2.新建一个函数 查找父节点
if exists(select name from sysobjects where name='Prants')
drop function Prants
go
create function Prants(@cCode varchar(32))
returns varchar(100)
as
begin
declare @str varchar(100)
set @str=''
declare @num varchar(32)
select @str= cName from yq_project where cCode=@cCode
if exists(select cPriorCode from yq_project where cCode=@cCode)
begin
select @num=cPriorCode from yq_project where cCode=@cCode
set @str=@str+'/'+dbo.Prants(@num)
end
return @str
end
执行查询
select dbo.Prants(cProCode) cProName,* from yq_Qz_House where dbo.Prants(cProCode) like '%棋赛%'
结果如下图
sql 递归显示所有父节点的更多相关文章
- SQL 递归树 子父节点相互查询
if object_id('[tb]') is not null drop table [tb] go create table [tb]([modeid] int,modename varchar( ...
- 转载:SQL 递归树 子父节点相互查询
if object_id('[tb]') is not null drop table [tb] go create table [tb]([modeid] int,modename varchar( ...
- JavaScript之递归查找所有父节点
......data: () => ({ // 数据 dt: [{ id: '1', children: [ { id: '1-1', children: [ { id: '1-1-1', ch ...
- sql递归显示层级数据
;) as varchar(max)) as ssort from Category where ID = '123' union all select t.*, ) as varchar(max)) ...
- SQL根据某一父节点查询所有子节点,无限
;with cte as( select id,ParentCategoryId from Category where id = 17 union all select a.id,a.ParentC ...
- (Elementui) el-tree 中英文过滤以及搜索到父子显示子节点,搜索到子节点显示父节点(filter-node-method)
案例下载:https://gitee.com/tudoumlp/just1.git (vue-ele-demo) 在项目中,会遇到树节点的搜索,中文和英文搜索,以及搜索到父节点匹配的时候同步显示该 ...
- SQL 递归找查所有子节点及所有父节
在SQL的树型结构中,很多时候,知道某一节点的值,需要查找该节点的所有子节点(包括多级)的功能,这时就需要用到如下的用户自定义函数. 表结构如下: ID int Dep_Type int Dep_Co ...
- 在论坛中出现的比较难的sql问题:21(递归问题 检索某个节点下所有叶子节点)
原文:在论坛中出现的比较难的sql问题:21(递归问题 检索某个节点下所有叶子节点) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. ...
- Mysql 实现 向上递归查找父节点并返回树结构
需求:通过mysql 8.0以下版本实现,一个人多角色id,一个角色对应某个节点menu_id,根节点的父节点存储为NULL, 向上递归查找父节点并返回树结构. 如果只有叶子,剔除掉; 如果只有根,只 ...
随机推荐
- java Logger 类
package org.rx.common; import org.slf4j.LoggerFactory; import java.util.Collections; import java.uti ...
- CSS:CSS margin(外边距)
ylbtech-CSS:CSS margin(外边距) 1.返回顶部 1. CSS margin(外边距) CSS margin(外边距)属性定义元素周围的空间. margin margin 清除周围 ...
- eclipse的快捷键(常用)
ctrl+shift+r 全局查找java类 ctrl +h 全局查找包含某某内容的文件位置 ctrl +alt+h 右击方法名 选择open call hierarchy
- requests_html爬虫小练习
爬取豆瓣TOP250 from requests_html import HTMLSession #新建一个html文件,将相应的代码放入,运行查看结果,如果页面全部渲染则直接根据页面信息获得数据: ...
- FreeBSD_11-系统管理——{Part_a-bhyve}
;; 创建 vm: #!/usr/bin/env zsh bridgeIF=bridge0 laggIF=lagg0 tapIF=tap0 phyIF_0=re0 phyIF_1=em0 isoPat ...
- 【Java多线程系列四】控制线程执行顺序
假设有线程1/线程2/线程3,线程3必须在线程1/线程2执行完成之后开始执行,有两种方式可实现 Thread类的join方法:使宿主线程阻塞指定时间或者直到寄生线程执行完毕 CountDownLatc ...
- CTF杂项思路工具分享————2019/5/30
分享碰到的一些奇奇怪怪的杂项解题方式: 键盘坐标密码: 题目给出一段字符串:11 21 31 18 27 33 34 对照上面的表格,就可以很清晰的看出来密文为:QAZIJCV 猪圈码: 题目为: 一 ...
- hql 语法与详细解释
HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hi ...
- Feign 系列(01)最简使用姿态
目录 Feign 系列(01)最简使用姿态 1. 引入 maven 依赖 2. 基本用法 3. Feign 声明式注解 Feign 系列(01)最简使用姿态 Spring Cloud 系列目录(htt ...
- c程序查找字符出现次数
#include <stdio.h> int main(){ char str[100],ch,M,Empty; int i, frequency = 0; fgets(str, (siz ...