请教一个SQL的简单排序问题。
原序:
ID SID CID NAME
14 1 000100 新闻资讯
15 3 000101 政务公开
16 2 000102 办事指南
99 0 00010200 文化市场类
100 1 00010201 文化艺术类
17 4 000103 群众文化
18 5 000104 机关建设
138 0 000105 省厅概况
新序:
ID SID CID NAME
138 0 000105 省厅概况
14 1 000100 新闻资讯
16 2 000102 办事指南
99 0 00010200 文化市场类
100 1 00010201 文化艺术类
15 3 000101 政务公开
17 4 000103 群众文化
18 5 000104 机关建设
难点在于:如果根据CID为主排序,则无法对SID进行排序;而如果根据SID为主排序,则又无法对CID进行排序。
------解决方案--------------------select * from 表 order by SID,CID
------解决方案--------------------没看明白 LZ的排序规则
------解决方案--------------------faint,
select * from table_Pqs order by SID,CID 按照字段前后顺序规则排序
------解决方案--------------------新序也没有规则
------解决方案--------------------明确的告诉你没有办法呀!!
------解决方案--------------------create funcation getsid(@cid varchar(8))
returns int
as
begin
decale @sid int
if len(rtrim(@cid))=8
select @sid=sid from 表 where cid=left(@cid,6)
else
select @sid=sid from 表
return @sid
end
go
select * from 表 order by dbo.getsid(cid),len(rtrim(cid)),sid
------解决方案--------------------上面第一句笔误
create function getsid(@cid varchar(8))
------解决方案--------------------create function getsid(@cid varchar(8))
returns int
as
begin
declare @sid int
if len(rtrim(@cid))=8