日期:2014-05-18  浏览次数:20597 次

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

------解决方案--------------------
可以。
如:
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

------解决方案--------------------
order by case when 字段= '某值时 ' then '0,或为a等,9或z ' else 字段 end
------解决方案--------------------
select * from 表
order by case when 字段=3 then sign end desc
字段XX=3的数据排到最前
~~  
根据条可件改