Oracle,mysql,sqlserver,postgresql语句几点比較

1.分页

Oracle: SELECT * FROM(SELECT A.*, ROWNUM RN FROM (select T.* from sj_receiptinfo t WHERE t.TAXNO LIKE CONCAT('%', CONCAT(?, '%')) order by t.id desc) A WHERE ROWNUM <= ?

)WHERE RN > ?


mysql:  select * from tableName where 条件 limit (当前页码*页面容量-1) , 页面容量pagesize


sqlServer: SELECT w2.n, w1.* FROM ARTICLE w1,(   SELECT TOP 1030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID FROM ARTICLE) w2 WHERE w1.ID = w2.ID AND w2.n > 1000 ORDER BY w2.n ASC 


postgresql:select * from xxx limit pagesize offset offsetNum ; 

pagesize是固定的,即每页显示多少记录。

offsetNum=(当前页数-1)*pagesize



2.查询头5条记录

Oracle: SELECT * FROM PersonsWHERE ROWNUM <= 5

mysql:		SELECT * FROM Persons LIMIT 5
 
  
sqlServer:	SELECT TOP 2 * FROM Persons
 
  
postgresql:SELECT * FROM Persons LIMIT 5。跟mysql一样


3.模糊查询
Oracle:select T.* from sj_receiptinfo t WHERE t.TAXNO LIKE CONCAT('%', CONCAT(?

, '%')) 

mysql:select T.* from sj_receiptinfo t WHERE t.TAXNO LIKE CONCAT('%', ?, '%') 

 
  
 
  
 
  
sqlServer:
select T.* from sj_receiptinfo t WHERE t.TAXNO LIKE ‘%%’
postgresql:select *。( T .类别代码 || '-' || T .发票号码 ) AS 号码 from account where username ~* 'baidu';
找出数据表account中全部用户名包括baidu且不区分大写和小写的用户的信息



4.推断null
Oracle:SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))FROM Products

mysql:SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))FROM Products

sqlServer:SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))FROM Products

postgresql:SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))FROM Products



 
  
5.插入数据
Oracle:insert into company(id,name,parentid,ccdm) values(COMPANY_SEQ.NEXTVAL,?

,?,?

)序列

mysql:insert into person(fullName,companyName) values(?,?) 由于ID是自己主动增长auto_increment
 
  
 
  
 
  
6.查询最大id
Oracle:SELECT NVL(MAX(ID),0)+1 FROM REPOT_BS

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值