--这样?declare @a table ( d_id int identity(1,1), d_name varchar(10), d_path varchar(20) )insert into @a select 'a','1,2,3,4,8' union all select 'b','1,2,3' union all select 'c','4,5,6,7'select * from @aselect * from @a order by (len(d_path)-len(replace(d_path,',',''))) desc/*d_id d_name d_path ----------- ---------- -------------------- 1 a 1,2,3,4,8 2 b 1,2,3 3 c 4,5,6,7 d_id d_name d_path ----------- ---------- -------------------- 1 a 1,2,3,4,8 3 c 4,5,6,7 2 b 1,2,3 */
谢谢大家回复, 按照d_path中“,”的多少排序
好办法“order by (len(d_path)-len(replace(d_path,',',''))) desc”
d_id d_name d_path
1 名称1 1,2,3
2 名称2 1,2,3,4,8
3 名称3 4,5,6,7希望得到
d_id d_name d_path
2 名称2 1,2,3,4,8
3 名称3 4,5,6,7
1 名称1 1,2,3
这样的排序.
(
d_id int identity(1,1),
d_name varchar(10),
d_path varchar(20)
)insert into @a
select 'a','1,2,3,4,8' union all
select 'b','1,2,3' union all
select 'c','4,5,6,7'select * from @aselect *
from @a
order by (len(d_path)-len(replace(d_path,',',''))) desc/*d_id d_name d_path
----------- ---------- --------------------
1 a 1,2,3,4,8
2 b 1,2,3
3 c 4,5,6,7
d_id d_name d_path
----------- ---------- --------------------
1 a 1,2,3,4,8
3 c 4,5,6,7
2 b 1,2,3
*/
按照d_path中“,”的多少排序
牛.解决了,谢谢..
给分..