1 | String result = "嗯,不错,"; |
sql基础函数用法
round函数 四舍五入保留小数
保留一位小数
1 | select |
limit关键字
在 SQL Server 中替代 MySQL 中的 limit 关键字
top关键字
1 | SELECT TOP n FROM table |
TOP n
: 指定从查询结果集中输出前 n 行,n 是介于 0 - 4294967295 之间的整数(只可以在 sql server 数据库中使用)
eg:SELECT TOP 5 FROM table1
查询结果:从 table1 中拿到前 5 条数据
limit
1 | SELECT * FROM table LIMIT n |
LIMIT n
: 指定从查询结果集中输出前 n 行。(只可以在 Mysql 数据库中使用)
eg: SELECT * FROM table1 LIMIT 10
查询结果:从 table1 中拿到前 10 条数据
1 | SELECT * FROM table LIMIT a,b |
LIMIT a,b
: a 是开始读取的第一条记录的编号(是从 0 开始计算编号,比如:a=2,则是从第三条开始计算),b 是要查询记录的个数。(只可以在 Mysql 数据库中使用)
eg: SELECT * FROM table1 LIMIT 2,5
查询结果:从 table1 中拿到第 3 条开始之后的 5 条数据 (一共 5 条数据)
1 | SELECT * FROM table LIMIT n OFFSET m |
LIMIT n OFFSET m
: n 是查询的行数,m 是查询的初始位置(是从 0 开始计算编号,比如:m=2,则是从第三条开始计算)。
eg: SELECT * FROM table1 LIMIT 2 OFFSET 3
查询结果:从 table1 中拿到第 4 条开始之后的 2 条数据 (一共 2 条数据)
rownum
1 | SELECT * FROM table WHERE ROWNUM <= n |
ROWNUM <= n
: 配合 where 使用,指定从查询结果集中输出前 n 行 (只可以在 Oracle 数据库中使用)
eg: SELECT * FROM table1 WHERE ROWNUM <= 20
查询结果:从 table1 中拿到前 20 条数据
总结:sql server、mysql、orcale 数据库用方法是不同的,要区别使用
在 sql server 中实现 limit m, n 的功能
在 MySQL 中,可以用 Limit 来查询第 m 列到第 n 列的记录,例如:
1 | select * from tablename limit m, n |
但是,在 SQL Server 中,不支持 Limit 语句。怎么办呢?
解决方案:
虽然 SQL Server 不支持 Limit ,但是它支持 TOP。
我们以 SQL Server 2005 为例,就以它自带的示范数据库 AdventureWorks 作为测试数据:
1 | select id from tablename |
如果要查询上述结果中前 6 条记录,则相应的 SQL 语句是:
1 | select top 6 id from tablename |
如果要查询上述结果中第 7 条到第 9 条记录,则相应的 SQL 语句是:
1 | select |
取第 m 条到第 n 条记录:
1 | select |
1 | select |
left函数 right函数 与oracle中的substr函数
从字符串左边或右边开始截取指定数量的字符
在SQL Server中:
1 | select left('Hello world!',8); --输出 'Hello wo' |
Oracle:
Oracle 中实现left、right函数使用substr函数。
1 | select substr('Hello world!',0,8) from dual; --Hello wo |
注意position参数不是下标从0开始,而是从1开始,代表第几个字符。在Oracle的substr函数中,position参数为0、为1时结果一样,因为position为0是被看作1来处理的。