sql递归查询 - MS-SQL Server / 基础类
一个表level
id name parentID
表内容
1 books 0
2 software 0
3 Philosophy 1
4 Confucianism 3
5 Utilities 2
6 Literature 1
预计输出
Books - Philosophy
Books - Philosophy - Confucianism
Books - Literature
Software - Utilities
求sql 语句 就看大哥们发挥了,高手就向这望望
没什么可发挥的,你自己学会是最好
SQL code:
SQL 2000和2005 树形递归法小汇总 收藏
/*
* 本人在前辈基础上整理而成
*内容是关于递归查询的 2000 和2005不同的用法
*/
--测试数据
if OBJECT_ID('tb') is not null
drop table tb
go
CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))
INSERT tb SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
GO
--2000的方法
--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID char(3))
RETURNS @t_Level TABLE(ID char(3),Level int)
AS
BEGIN
declare @Level int
set @level=1
insert @t_level select @id,@level
while @@rowcount>0
begin
set @level=@level+1
insert @t_Level select tb.id,@level
from tb join @t_level t on tb.pid=t.id
where t.level+1=@level
end
return
end
sele
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......
表数据
COL1 COL2 COL2 COL4 COL5
----------------------------------------------------------------------------------------------
2010-05-05 00:00 ......
A表 有两个字段
id 唯一数字域
InfoTxt text 类型
我现在要把 id 不是14 的所有 InfoTxt字段 文本后面 都加上 'aaa'
按下面执行下来 只有表最后一行加上了 'aaa' ......