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


时间: 2024-08-10 09:39:47

Oracle,mysql,sqlserver,postgresql语句几点比较的相关文章

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)

Oracle/Mysql/SqlServer函数区别

mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36|  分类: Mysql技术 |  标签:mysql  sqlsever  oracle  函数   |举报 |字号大中小 订阅 Sql代码 1.类型转换 --Oracle select to_number('123') from dual; --123; select to_char(33) from dual;  --33; select t

oracle,mysql,SqlServer三种数据库的分页查询总结

MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.例如: select * from table    LIMIT 10;    #返回前10行 select * from table    LIMIT 0,10; #返回前10行

oracle,mysql,SqlServer三种数据库的分页查询

MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.例如:select * from table WHERE … LIMIT 10; #返回前10行select * from table WHERE … LIMIT 0,10; #返回前

oracle mysql sqlserver数据库中的分页

oracle: select * from (select rownum r,t1.* from tablename t1 where rownum <M+N ) t2 where t2.r>M; 说明:从tablename表里筛选出从M条记录开始,筛选N条记录. mysql: select * from tablename limit n,m; 说明:从tablename表筛选出,从第n条记录开始,筛选出m条记录. 备注:记录位置从0开始. sqlserver: select top n *

在oracle,mysql,sqlserver中,对要求取表的行数的语法格式

在oracle中如果我们要求取表的前几行,用关键字rownum 例: select * from student where rownum<=10 得出的结果是取出student表中的前10行 在mysql中,用关键字limit 例:select * from student limit 10 得出的结果是取出前10行数据 或    select * from student limit 1,2 表示从第一行后的两行数据,即取出的是第二行与第三行数据 在sqlserver中,用关键字top 例:

db2,oracle,mysql ,sqlserver限制返回的行数

不同数据库限制返回的行数的关键字如下: ①db2 select * from table fetch first 10 rows only; ②oracle select * from table where rownum<=10; ③mysql select * from table limit 10; ④sqlServer select top 10 * from table; 原文地址:https://www.cnblogs.com/baxianhua/p/9105372.html

数据库分页(oracle,mysql,sqlserver)

SQL Server 的语法: SELECT TOP number|percent column_name(s) FROM table_name MySQL 语法 SELECT column_name(s) FROM table_name LIMIT number 例子 SELECT * FROM Persons LIMIT 5 Oracle 语法 SELECT column_name(s) FROM table_name WHERE ROWNUM <= number 例子 SELECT * F

你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗

ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性:    Oracle.MYSQL与DB2可在所有主流平台上运行:    SQL Server只能在Windows下运行: --安全性:    Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证:    这方面证明了Oracle的安全性是高于SQL Server的: --数据类型.函数.sql语句:    oracle中有复合数据类型,sql server中没有: 总之: