SQL中排一张表的顺序,把特定的一项放在最前或最后.其它的按各种指定的顺序排

sjt000 2007-05-18 04:14:36
用那种方法最好?
...全文
404 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuai45 2007-05-18
  • 打赏
  • 举报
回复
select * from 表
order by case when 字段=3 then sign end desc
字段XX=3的数据排到最前
~~  
根据条可件改
fa_ge 2007-05-18
  • 打赏
  • 举报
回复
学习
gahade 2007-05-18
  • 打赏
  • 举报
回复
order by case when 字段='某值时' then '0,或为a等,9或z' else 字段 end
Andy-W 2007-05-18
  • 打赏
  • 举报
回复
方法是这样如上,楼主可以自己测试一下,再根据实际情况变换。
Andy-W 2007-05-18
  • 打赏
  • 举报
回复
可以。
如:
CREATE TABLE #T([id] int IDENTITY(1,1),d nvarchar(20))
INSERT INTO #T
SELECT 'Asafdsa' UNION ALL
SELECT 'eeee' UNION ALL
SELECT '232' UNION ALL
SELECT 'zsfff' UNION ALL
SELECT 'TEMP'
--现在固定把含有d='TEMP'这一行数据放在最前,其他按d升序排序

--修改前
SELECT * FROM #T ORDER BY d
--修改后
SELECT * FROM #T ORDER BY CASE d WHEN 'TEMP' THEN '00000' ELSE d END

DROP TABLE #T

27,579

社区成员

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

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