sql树查询 - MS-SQL Server / 基础类
表数据
id pid name
1 0 a
2 0 b
3 1 c
4 1 d
5 0 e
6 3 f
7 3 g
要得到 top 5
id pid name top
1 0 a top1
|-3 1 c
|-6 3 f
|-7 3 g
|-4 1 d
2 0 b top2
5 0 e top3
请问要怎么查
又来,搜索一下精华贴
木有找到
我的思路是这样的
先select top 第一级节点(作为条件)
select 根节点
union all 所有子节点 where(select top)
就没查一条根节点,把他对应的所有子节点插进去(子节点做个函数递归调用)
小弟不才,不懂的写。望高手不吝赐教
SQL code:
----------------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-05-07 21:13:46
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
----------------------------------------------------------------------------------
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......
请教高手:
以下是数据库中的三条记录,英文为字段名称
id planname TaskBeginTime Status
329 2010年03 ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......