你好!
你可不用书上的查询方法 试下以下方法
将指定行显示在第一行,示例如:
表user
id name age
1 jack 18
2 mary 17
3 tom 20
4 ken 15
5 lee 18
现指定某行放为第一行(如id=4),其他正常排序
查询返回结果应为
id name age
4 ken 15 <--指定行为id=4
1 jack 18
2 mary 17
3 tom 20
5 lee 18
方法:
有一种写法在SYBASE的ASA里面是好用的,但在SYBASE的ASE里面不好用,其它数据库未作测试。
select * from user where id =4
union
select * from user where id <>4
go
另一种可能通用的写法,就是使用伪列,然后排序,语法如下,
select *,(case id when 4 then '1' else '2' end) as abc from user order by abc
go
还有一种稍微另类的写法,如果要id为4的排在首行,就写abs(id-4),以此类推:
select id,name from test order by abs(id-4)