排序问题求教,多字段排序

mars_bolt 2004-09-19 04:23:20
根据不同的字段进行排序
例 根据 f1 , f2 ,f3
如果 f1 = 1 则 order by f1,f2,f3
如果 f2 = 2 则 order by f1,f3,f2
如何解决。
我现在的做法是用临时表或者表变量
create table #table1
(
....
id int identity(1,1)
)
insert into #table1(...) values select * from t1 where f1 = 1 order by f2,f3
insert into #table1(...) values select * from t1 where f1 = 2 order by f3,f2

select * from #table1 order by f1,id
请问除此之外还有更好的方案么?上述方法速度必然是很慢的。
by the way
我反复测试用临时表反而比表变量要快一点点。有点不得其解,测试是在查询分析器中进行的。


...全文
77 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mars_bolt 2004-09-19
  • 打赏
  • 举报
回复
sql的order by 里面居然可以用case when 看来我太。。。了。我来try try。
zjcxc 2004-09-19
  • 打赏
  • 举报
回复
--char类型的话,你可以把两个字段加直接排序

select * from 表 order by f1,case f1 when 1 then f2+f3 else f3+f2 end

mars_bolt 2004-09-19
  • 打赏
  • 举报
回复
f2,f3都是char 这里是简单的例子。实际比这个复杂点,
zjcxc 2004-09-19
  • 打赏
  • 举报
回复
f2,f3是什么类型的字段?

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧