我有一个表
ID ClassName ParentID
1 a 0
2 b 0
3 aa 1
4 aaa 3
5 aaaa 4
6 bb 2
7 bbb 6要求数据独出来的是这样的
a
aa
aaa
aaaa
b
bb
bbb
不知道我写的你能明白不,新手求高手帮助
ID ClassName ParentID
1 a 0
2 b 0
3 aa 1
4 aaa 3
5 aaaa 4
6 bb 2
7 bbb 6要求数据独出来的是这样的
a
aa
aaa
aaaa
b
bb
bbb
不知道我写的你能明白不,新手求高手帮助
解决方案 »
- 有什么方法能获取某个作业执行时间么?
- 为什么这条sql语句怎么这么慢?[
- 有谁知道Oracle中类似于SQL中的datediff()函数是什么?
- 我想写一个根据卡片类型分组,group by子句要求很严格必须要把查询的字段放在聚合函数或者放在group by里面
- 求一个SQL语句
- 紧急...请教各位大虾!!!!
- 如何实现下面数据更新,谢谢
- 如何将一行变成列,求sql语句!!
- 急!急!急!在SQLserver2005上附加数据库时出现602错误???请各位高手帮助!!
- 关于select...for update的问题?
- sql server2005 调用表值(标量值)函数,权限
- 32位2003系统32位SQL2005开启awe最大支持多大内存
select ClassName from tb order by ClassName , ParentID
with cte as
(
select *,p=t.id from t where pid=0
union all
select a.*,p=b.p*10+a.id from t a join cte b on a.pid=b.id
)
select * from cte order by cast(p as varchar(10))/*
id c pid p
----------- ---------- ----------- -----------
1 a 0 1
3 aa 1 13
4 aaa 3 134
5 aaaa 4 1345
2 b 0 2
6 bb 2 26
7 bbb 6 267
*/
create table #Class(ID int, Classname varchar(10), ParentID int)
--写数据
insert into #Class
select 1,'a',0 union all
select 2,'b',0 union all
select 3,'aa',1 union all
select 4,'aaa',3 union all
select 5,'aaaa',4 union all
select 6,'bb',2 union all
select 7,'bbb',6 union all--显示select Classname from #Class order by left(classname,1)+cast(ParentID as varchar)
--结果
Classname
----------
a
aa
aaa
aaaa
b
bb
bbb(7 行受影响)