sql范例自学手册,实例003有疑问想请教
发表在Oracle视频答疑 2010-08-22
是否精华
版块置顶:
根据书中003范例无法实现查询指定行,只能查得前三行或前一行的记录.所给出的录相文件也没有相应的比对.请给予详细解释.
分享到:
精彩评论 1
大伟_mrkj
学分:0 LV1
2010-08-23
沙发
你好!
你可不用书上的查询方法 试下以下方法
将指定行显示在第一行,示例如:
表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) 
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照