注册 登录
编程论坛 SQL Server论坛

[求助]表内记录重新排列的问题?

菜鸟先行 发布于 2006-11-17 16:02, 510 次点击
小弟做.net遇到点麻烦,想在sql server里解决,一个表,表里字段如下:
column_id column_name pre_id column_grade
1 简介 0 0
2 规章 0 0
3 新闻 0 0
4 简介1 1 1
5 规章1 2 1
6 新闻1 3 1
7 简介2 1 1
8 规章2 2 1

就是一个类似带前序的菜单结构,现在我想让它变个顺序,变成:
column_id column_name pre_id column_grade
1 简介 0 0
4 简介1 1 1
7 简介2 1 1
2 规章 0 0
5 规章1 2 1
8 规章2 2 1
3 新闻 0 0
6 新闻1 3 1
这样程序里直接读就可以这样显示了,明白我的意思吧,
有什么办法可以解决吗???请前辈指点,非常感谢





[此贴子已经被作者于2006-11-17 16:05:20编辑过]

4 回复
#2
LouisXIV2006-11-17 16:34
...
order by charindex(','+left(column_name,2)+',',',简介,规章,新闻,'),column_id
#3
菜鸟先行2006-11-17 17:10
以下是引用LouisXIV在2006-11-17 16:34:58的发言:
...
order by charindex(','+left(column_name,2)+',',',简介,规章,新闻,'),column_id

不好意思,我是菜鸟不太明白,查了一下,charindex是返回字符串位置的是吧,您的意思是返回column_name中与后面',简介,规章,新闻,'相同的字符的位置,并按这个位置,和column_id排序是吗??可是我的这个简介1,规章1。。。。只是个实例,实际数据中父节点和字节点没有相同的字符的,这个要怎么办啊??

#4
LouisXIV2006-11-17 17:31

在MSSQL里, 你要写一个求根节点的函数辅助排序

#5
bygg2006-11-17 21:29
order by column_id
1