二级分类查询的问题
有个产品分类表,如:
id 类别 所属类别
-----------------------------
38 路由器 0
182 其他网络设备 0
186 网络设备1 182
176 路由器3 38
180 路由器2 38
181 交换机 0
183 交换机1 181
187 网络设备2 182
179 路由器1 38
188 网络设备3 182
184 交换机2 181
185 交换机3 181
我要显示的结果为:
一级类别 二级类别
-------------------------
路由器 ...
... 路由器1
... 路由器2
... 路由器3
交换机 ...
... 交换机1
... 交换机2
... 交换机3
其他网络设备 ...
... 网络设备1
... 网络设备2
... 网络设备3
大家说说该怎么写这条SQL语句呢?
我的写法是:
select
[id],
case [所属类别] when 0 then [产品类别] else '...' end as [一级类别],
case [所属类别] when 0 then '...' else [产品类别] end as [二级类别]
from [产品类别] t
order by
CASE [所属类别] WHEN 0 THEN [id]*1000 ELSE [所属类别]*1000+1 END,[产品类别]
但我总觉的上面的SQL语句不好,大家帮我看看是什么地方不好,
或者大家帮我想个好点的方法,我先谢谢大家哦!