ホームページ >データベース >mysql チュートリアル >oracle、mysq、sqlserver的区别
一、oracle、mysq、sqlserver取结果中几行记录的 区别 http://www.w3school.com.cn/sql/sql_top.asp 原始的表 (用在例子中的): Persons 表: Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3
一、oracle、mysq、sqlserver取结果中几行记录的区别
http://www.w3school.com.cn/sql/sql_top.asp
Persons 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
4 | Obama | Barack | Pennsylvania Avenue | Washington |
TOP 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
注释:并非所有的数据库系统都支持 TOP 子句。
SELECT TOP number|percent column_name(s)FROM table_name<p></p><h2>SQL TOP 实例</h2><p>现在,我们希望从上面的 "Persons" 表中选取头两条记录。</p><p>我们可以使用下面的 SELECT 语句:</p><pre class="brush:php;toolbar:false">SELECT <code>TOP 2</code> * FROM Persons
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
现在,我们希望从上面的 "Persons" 表中选取 50% 的记录。
我们可以使用下面的 SELECT 语句:
SELECT <code>TOP 50 PERCENT</code> * FROM Persons
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
select top n * from (select top m * from tablename order by columnname) a order by columnname desc
这个是用一个 sqlserver中 top比order by 后执行 的原理。
第二种方法:
/*以下示例将返回行号为 50 到 60(含)的行,并以 OrderDate 排序。*/ select * from( select row_number() over (order by orgid) as rownum from org_info ) as wo where wo.rownumber between 50 and 60
SELECT column_name(s)FROM table_nameLIMIT number
例子
SELECT *FROM Persons LIMIT 5
SELECT column_name(s)FROM table_nameWHERE ROWNUM <h4><pre class="sql" name="code">SELECT * FROM (SELECT ROWNUM RM, UI.* FROM USER_INFO UI WHERE ROWNUM < 10) WHERE RM > 5;
这个中也可以用 继续进行限制,如 最后一个where 条件中变为:RM>5 AND RM
SELECT *FROM PersonsWHERE ROWNUM <pre class="brush:php;toolbar:false">
注意
<span><strong>1、sqlserver 中SQL的执行顺序。</strong></span>
注意:这里的TOP 在 order by 的后面执行。意思是:sqlserver先进行排序再取top的数据。
2、oracle 中 order by 也是比 rownum先执行。
二、IF ELSE 区别:
mysql和oracle的区别:
1)、注意elseif区别:
在mysql中:
<span>IF <em>search_condition</em> THEN <em>statement_list</em></span>
<span><span> </span>[ELSEIF <em>search_condition</em> THEN <em>statement_list</em>] ...</span>
<span><span> </span>[ELSE <em>statement_list</em>]</span>
<span>END IF</span>
IF 条件1 THEN ...如果条件1为真,则执行这里的语句... ELSIF 条件2 THEN ...如果条件1为假,但是条件2为真,则执行这里的语句... ELSE ...如果条件1和条件2都为假,则执行这里的语句... END IF; |