"select *,(select count(*) from tree where parentid = T.id) as children from tree T where rootid = id "查询当前根节点下一层(where rootid = id ) 的记录(select *,) 并把相应记录的子接点数量查询出来( *,(select count(*) from tree where parentid = T.id) as children )
解决方案 »
- 关于SQL中存放图片的问题
- 下面的存储过程如何修改?
- sql2000怎么样把一张表中所有的NULL值全部替换为空值啊,就一条语句执行,分字段替换容易
- 直接写sql语句和使用存储过程拼sql语句,哪个效率更高些
- 关于在ACCESS中使用SQL的语句请教
- mssql 如何录入 2008-1-1 这样的时间格式
- 在函数里面有一个动态生成的sql语句,想执行后,取出返回的值。
- SQL 2005 发送邮件,如果加上带附件的参数,则出错! 请帮忙看看,谢谢!
- 这个存储过程在Vb中如何调用?并返回结果。
- 紧急寻求帮助
- 有关SQL SERVER2000英文版的问题
- 哪有mp3、视频的《成功经理人》或”cisco的培训“课程方面的下载
然后從表tree中查出rootid=id的所有記錄
相當于rooted=id的記錄加上了一個字段
insert #a values(3,1)insert #a values(4,2)
insert #a values(5,2)
insert #a values(6,2)insert #a values(7,3)select *,(select count(*) from #a where parentid=表别名.id) 子节点数 from #a 表别名
go
drop table #a
tree 為 talbe
insert 表 values(3,1)insert 表 values(4,2)
insert 表 values(5,2)
insert 表 values(6,2)insert 表 values(7,3)select *,(select count(*) from 表 where
父编号=表别名.编号 -----子查询里的父编号=外面的编号 的数量求和) 子节点数 from 表 表别名
go
drop table 表
where parentid = T.id) as children )这种结构符合语法吗?不过确实能执行
Transact-SQL 引用中的语法关系图使用下列规则。规范 用于
大写 Transact-SQL 关键字。
斜体 Transact-SQL 语法中用户提供的参数。
| (竖线) 分隔括号或大括号内的语法项目。只能选择一个项目。
[ ] (方括号) 可选语法项目。不必键入方括号。
{}(大括号) 必选语法项。不要键入大括号。
[ ,...n ] 表示前面的项可重复 n 次。每一项由逗号分隔。
[ ...n ] 表示前面的项可重复 n 次。每一项由空格分隔。
加粗 数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。
<标签> ::= 语法块的名称。此规则用于对可在语句中的多个位置使用的过长语法或语法单元部分进行分组和标记。适合使用语法块的每个位置由括在尖括号内的标签表示:<标签>。
COUNT ( { [ ALL | DISTINCT ] expression ] | * } )
select count(*) from #a where parentid=表别名.id
使用了子查询子查询基础知识
子查询是一个 SELECT 查询,它返回单个值且嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。任何允许使用表达式的地方都可以使用子查询。下例中,一个子查询用作 SELECT 语句中名为 MaxUnitPrice 的列表达式。SELECT Ord.OrderID, Ord.OrderDate,
(SELECT MAX(OrdDet.UnitPrice)
FROM Northwind.dbo.[Order Details] AS OrdDet
WHERE Ord.OrderID = OrdDet.OrderID) AS MaxUnitPrice
FROM Northwind.dbo.Orders AS Ord子查询也称为内部查询或内部选择,而包含子查询的语句也称为外部查询或外部选择