不好意思,基本功不太扎实,能写详细一点么? 假如查询语句 select * from table1 结果中有个字段为Name,值为张三、李四、王五, 想按姓名排序,将Name值为王五的排在最前面该怎么写呢?
按笔划排是吧order by Name COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS
select * from [Table] order by case name when '王五' then 0 else 1 end
--多加一列: DECLARE @TbTemp TABLE ( ID INT, NAME NVARCHAR(1024) ) INSERT INTO @TbTemp SELECT 1,'AA' UNION SELECT 2,'BB' UNION SELECT 3,'CC' UNION SELECT 4,'DD' UNION SELECT 5,'Deacen'SELECT * ,(CASE [NAME] WHEN 'Deacen' THEN 0 ELSE 1 END) MyOrder FROM @TbTemp ORDER BY MyOrder ID NAME MyOrder ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- 5 Deacen 0 1 AA 1 2 BB 1 3 CC 1 4 DD 1(5 row(s) affected)
假如查询语句 select * from table1 结果中有个字段为Name,值为张三、李四、王五,
想按姓名排序,将Name值为王五的排在最前面该怎么写呢?
按笔划排是吧order by Name COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS
--多加一列:
DECLARE @TbTemp TABLE
(
ID INT,
NAME NVARCHAR(1024)
)
INSERT INTO @TbTemp
SELECT 1,'AA'
UNION SELECT 2,'BB'
UNION SELECT 3,'CC'
UNION SELECT 4,'DD'
UNION SELECT 5,'Deacen'SELECT * ,(CASE [NAME] WHEN 'Deacen' THEN 0 ELSE 1 END) MyOrder FROM @TbTemp ORDER BY MyOrder
ID NAME MyOrder
----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------
5 Deacen 0
1 AA 1
2 BB 1
3 CC 1
4 DD 1(5 row(s) affected)