sql 语句查所有父级
常见问题,给一个记录ID,查出它的所有父级,直到顶级
使用SMSS,sql server,找到一个办法.
思路是分两步,先循环找到所有父级的ID,再用IN查出所有父级
列说明 ID=PK ParentId = 上级ID ParentId = 0 表示到顶级了
SQL语句 :
DECLARE @childrenId VARCHAR(32)     -- 要查找这个ID的所有父级
DECLARE @1parentIds VARCHAR(max) -- 所有父级的ID列表,最终拼成IN的条件.效果如: '111','222','333'
SET @1parentIds = ''''+@childrenId+'''' -- 也包含自己,一直到父级
WHILE @childrenId!='0'         -- 如果父级ID不是0就继续查找
BEGIN
      SELECT @childrenId = ParentId FROM [table] WHERE  Id=@childrenId -- 根据ID找到这个记录,将它的父ID赋值,这个父ID作为下一级的子ID查找
	  SET @1parentIds= @1parentIds + ',' + '''' + @childrenId + ''''                    -- 拼接这个父ID
END
-- 由于拼接的字符串不能做IN的参数,所以想这个办法将整个SQL拼成再执行之.
EXEC('SELECT * FROM [table] WHERE Id IN (' + @1parentIds + ')'+'ORDER by Id')
sql 语句查所有父级的更多相关文章
- Mysql 根据id查所有父级或子级
		
mysql递归查询,mysql中从子类ID查询所有父类(做无限分类经常用到) 由于mysql 不支持类似 oracle with ...connect的 递归查询语法 之前一直以为类似的查询要么用存储 ...
 - SQL语句查数据库中某一列是否有重复项
		
Select 列名,COUNT(列名)FROM 表名GROUP BY 列名HAVING COUNT( 列名 ) 〉1
 - 怎么用SQL语句查数据库中某一列是否有重复项
		
SELECT 某一列, COUNT( 某一列 ) FROM 表 GROUP BY 某一列 HAVING COUNT( 某一列 ) 〉1 这样查询出来的结果, 就是 有重复, 而且 重复的数量.
 - sql语句not in判断条件注意事项
		
sql语句not in判断条件注意事项 问题描述:mysql数据库,存在两个表org表和kdorg表,用于存储组织信息.现在我需要从org表找出组织,条件为该组织不在kdorg表里. sql语句:se ...
 - [20190328]简单探究sql语句相关mutexes.txt
		
[20190328]简单探究sql语句相关mutexes.txt --//摘要:http://www.askmaclean.com/archives/understanding-oracle-mute ...
 - 用sql语句查出和sql相关的性能计数器
		
一台服务器上,用性能监视器死活显示不出来一部分计数器,没办法,用sql语句查了 --所有和sql相关的计数器 select * from sys.dm_os_performance_counters ...
 - 数据库、MySQL下载与安装、基本SQL语句
		
数据演变史 # 1.单独的文本文件 没有固定的存放位置 没有固定的数据格式 '''程序彼此无法兼容 没有统一的标准''' # 2.软件开发目录规范 按照文件功能的不同规定了相应的位置 '''文件查找变 ...
 - [经典SQL语句]根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回
		
树形表结构: id parentID isDel 1 0 0 2 1 0 3 1 1 4 2 0 5 2 0 一)根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回 ID=,需要返回的结果(条件 ...
 - SQL Server   T—SQL 语句【查】
		
一 查询数据(关键字:select) (1)简单查询 select * from 表名 ——查全表 select 列名 from 表名 select ...
 
随机推荐
- awk+sed编程
 - SQL not exist out join
			
sql中exists,not exists的用法 - 飞翔-方向 积累 沉淀 - 博客园http://www.cnblogs.com/mytechblog/articles/2105785.html ...
 - Nginx负载均衡各种配置方式
			
Nginx负载均衡 - 小刚qq - 博客园http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html Module ng ...
 - API的设计与安全
			
前后端分离是个浪潮,原来只有APP客户端会考虑这些,现在连Web都要考虑前后端分离 . 这里面不得不谈的就是API的设计和安全性,这些个问题不解决好,将会给服务器安全和性能带来很大威胁 . API的设 ...
 - Laravel 5.2+ 使用url()全局函数返回前一个页面的地址
			
注意:文章标题中5.2+表示该文章内容可向上兼容,适用于Laravel版本5.2及更高(目前最新为5.6),但不可向下兼容,即不适用于5.2版本以下.推荐大家花一点点时间,将自己的Laravel更新至 ...
 - checkbox保存和赋值
			
//货物信息中的表格内容 $.each(trG.find('td input,td select'),function(i,inp){ if($(inp).attr('type')=='checkbo ...
 - 开机自动获取spark用户名和服务器
			
import os.path import getpass import platform import time username = getpass.getuser() #获取当前用户名 home ...
 - WEB测试重点--(转载)
			
1.功能测试: 所实现的功能是否和需求一致: js错误 页面链接错误-空链接.死链接.错误链接 按钮无效 未实现功能 报错提示信息不准确或不友好 数据库访问错误 sql注入 文档上传下载问题 -未实现 ...
 - Linux常见操作
			
前面的话 本文将详细介绍Linux常见操作 基本概念 Linux严格区分大小写,所有内容以文件形式保存,包括硬件 Linux没有扩展名的概念,不靠扩展名来区分文件类型.但有一些约定俗成的扩展名 压缩包 ...
 - User Authentication with Angular and ASP.NET Core
			
User authentication is a fundamental part of any meaningful application. Unfortunately, implementing ...