SQLSERVER2005 中树形数据的递归查询
更新时间:2011年10月25日 15:40:13 作者:
在园子里看到一个文章,涉及到树形数据的递归查询,觉得有更好的方法,就随手写一个,以备用之
问题描述。借用了adinet的问题。参见:https://www.jb51.net/article/28670.htm
with cte as
(select * from tb where id='1'
union all
select tb.* from tb join cte on charindex(cast(cte.id as varchar(10)),tb.parentid)>0)
select * from cte
今天做项目遇到一个问题,
有产品分类A,B,C顶级分类,
期中A下面有a1,a2,a3子分类.
但是a1可能共同属于A和B,然后我的数据库是这样设计的
id | name | parnet |
1 | A | 0 |
2 | B | 0 |
3 | a1 | 1,2 |
如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,
解决方案
复制代码 代码如下:
with cte as
(select * from tb where id='1'
union all
select tb.* from tb join cte on charindex(cast(cte.id as varchar(10)),tb.parentid)>0)
select * from cte
相关文章
Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容
Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容,多个朋友给予的参考。2011-10-10让sql2005运行在独立用户下出现 WMI 提供程序错误的解决方式
您还有 %1 的时间注销,如果您 在此时间到之后仍没有注销,您的会话 将会断开,任何打开的文件或设备 就可能丢失数据2012-11-11Sql Server 2005的1433端口打开局域网访问和进行远程连接
在实际项目中,我们经常会遇到需要局域网访问或者需要外网访问甚至是两者都需要的数据库搭建,那么应该如何来处理呢,我们来一一探讨下2014-08-08更改SQL Server 2005数据库中tempdb位置的方法
本文我们主要介绍了SQL Server 2005数据库中更改tempdb系统数据库的位置的方法,希望能够对您有所帮助。2015-08-08安装MSSql2005时 “以前的某个程序安装已在安装计算机上创建挂起” 的解决办法
安装MSSql2005时 “以前的某个程序安装已在安装计算机上创建挂起” 的解决办法2010-02-02SQLServer Job运行成功或失败时发送电子邮件通知的图文教程
虽然我们可以通过Job日志来查看SQL Server Job运行成功或是失败,但是人工主动去查没有及时性,也不智能化。下面简单介绍一下如何设置SQL Server的邮件通知,让Job完成后,自动发送状态邮件。2009-09-09
最新评论