﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-像鸟儿一样飞翔-随笔分类-数据库技术</title><link>http://www.blogjava.net/lxr5224/category/18703.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 20:21:16 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 20:21:16 GMT</pubDate><ttl>60</ttl><item><title>SQL实现排序后分页查询功能（oracle）</title><link>http://www.blogjava.net/lxr5224/archive/2007/01/17/94463.html</link><dc:creator>依茗</dc:creator><author>依茗</author><pubDate>Wed, 17 Jan 2007 09:33:00 GMT</pubDate><guid>http://www.blogjava.net/lxr5224/archive/2007/01/17/94463.html</guid><wfw:comment>http://www.blogjava.net/lxr5224/comments/94463.html</wfw:comment><comments>http://www.blogjava.net/lxr5224/archive/2007/01/17/94463.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lxr5224/comments/commentRss/94463.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lxr5224/services/trackbacks/94463.html</trackback:ping><description><![CDATA[在网页上显示大量数据的时候，很多时候是要求按一定的顺序分页来显示．大家可能都知道用oracle中的rownum可以实现分页查询，比如：<br />select * from tablename where rownum&lt;=10.<br /><br /> 但是如果要排序的话,如下的语句：<br />select * from tablename where rownum&lt;=10 order by name.<br />却不能达到我们想要的效果，这个语句执行结果是取了１０条数据，然后排序．而不是先排序再取前１０条．这样就需要我们加入子查询：<br />select * from (select * from tablename order by name) where rownum&lt;10<br /><br />另外rownum的使用是不允许我们用＂&gt;＂的，如果我要显示第二页，即10-20条数据，不能用<br />select * from (select * from tablename order by name) where  rownum&gt;10 and rownum&lt;20<br />或<br />select * from (select * from tablename order by name) where  rownum between 10 and 20<br /><br />这样的话我们只能另想办法解决，解决方法如下：<br />select * from(<br />select rownum rowno,t.* from <br /> (select * <br /> from tablename<br /> order by name) t<br />where rownum&lt;6)where rowno&gt;2;<br /><br />但是这样的话也会影响到速度，各位如果有好的方法可以一起探讨下．<img src ="http://www.blogjava.net/lxr5224/aggbug/94463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lxr5224/" target="_blank">依茗</a> 2007-01-17 17:33 <a href="http://www.blogjava.net/lxr5224/archive/2007/01/17/94463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle外部表的使用</title><link>http://www.blogjava.net/lxr5224/archive/2006/12/26/90053.html</link><dc:creator>依茗</dc:creator><author>依茗</author><pubDate>Tue, 26 Dec 2006 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/lxr5224/archive/2006/12/26/90053.html</guid><wfw:comment>http://www.blogjava.net/lxr5224/comments/90053.html</wfw:comment><comments>http://www.blogjava.net/lxr5224/archive/2006/12/26/90053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lxr5224/comments/commentRss/90053.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lxr5224/services/trackbacks/90053.html</trackback:ping><description><![CDATA[
		<p>在oracle中用sql语句不只是可以访问正规的数据表,还可以访问具有一定格式的外部文件(比如CSV文件).具体方法:<br /> 将放在d:\test目录下的两个文件'20061222名词表.txt','参照.txt',映射到两个数据库表中,然后就可以实现用SQL语句访问普通的CSV文件.<br />create directory dir_test as 'd:\test';</p>
		<p>create table tbl_zidian<br />(<br />name varchar2(500),english varchar2(1000)<br />)<br />ORGANIZATION EXTERNAL<br />(<br />TYPE ORACLE_LOADER <br />DEFAULT DIRECTORY dir_test<br />ACCESS PARAMETERS<br />(<br />RECORDS DELIMITED BY NEWLINE <br />badfile 'x1.bad'<br />discardfile 's1.dis'<br />logfile 'x1.log'<br />fields terminated by ','<br />missing field values are null<br />) <br />LOCATION('20061222名词表.txt')<br />);</p>
		<p>create table tbl_zidian_3<br />(<br />name varchar2(100)<br />)<br />ORGANIZATION EXTERNAL<br />(<br />TYPE ORACLE_LOADER <br />DEFAULT DIRECTORY dir_test<br />ACCESS PARAMETERS<br />(<br />RECORDS DELIMITED BY NEWLINE <br />badfile 'x1.bad'<br />discardfile 's1.dis'<br />logfile 'x1.log'<br />fields terminated by ','<br />missing field values are null<br />) <br />LOCATION('参照.txt')  --目录里<br />);</p>
		<p> </p>
		<p>create table tbl_tt2 as<br />select distinct ch_name,en_name,ch0_name from (<br />select b.name ch_name,a.english en_name,a.name ch0_name<br />from tbl_zidian a,tbl_zidian_3 b <br />where (a.name like '%'||b.name||'%') or (b.name like '%'||a.name||'%'));</p>
		<p>
				<br />select name,'','' from tbl_zidian_2 <br />where name not in(select ch_name from tbl_tt) order by name</p>
<img src ="http://www.blogjava.net/lxr5224/aggbug/90053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lxr5224/" target="_blank">依茗</a> 2006-12-26 10:28 <a href="http://www.blogjava.net/lxr5224/archive/2006/12/26/90053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>