1.限制结果集行数
1.1 MYSQL:使用LIMIT关键字用来限制返回的结果集,LIMIT放在SELECT语句的最后位置,语法为“LIMIT 首行行号,要返回的结果集的最大数目”
例如:SELECT * FROM TABLENAME ORDER BY ID DESC LIMIT 2,5 //返回按照ID降序排列的从第二行开始(行号从0开始)的最多五条记录
1.2 MSSQLServer2000:提供TOP关键字用来返回结果集中的前N条记录,语法为“select top 限制结果集数目 字段列表 其余部分”
例如:select top 5 * from tablename order by id desc; //返回按照ID降序排列排在前5位的信息
select top 3 * from tablename where id not in (select top 5 * from tablename order by id desc) order by id desc; //按照ID降序排列找出第6位到第8位的信息
1.3 MSSQLServer2005:几乎兼容所有的MSSQLServer2000的语法,在限制结果集行数上提供了窗口函数ROW_NUMBER(),可以计算第一行数据在结果集中的行号(从1开始),语法为“ROW_NUMBER OVER(排序规则)”,其中ROE_NUMBER()不能用在WHERE语句中
例如:SELECT ROW_NUMBER() OVER(ORDER BY ID),NAME FROM TABLENAME //返回有行数的数据
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ID DESC) AS ROWNUM,NAME FROM TABLENAME) AS A WHERE A.ROWNUM>=3 AND A.ROWNUM<=5; //返回第3行到第5行的数据
1.4 Oracle:支持窗口函数ROW_NUMBER(),用法与MSSQLServer2005相同,不同的是rownum是Oracle中的保留字,定义别名时也不用例AS,rownum是Oracle默认的表示行号的列
例如:SELECT * FROM TABLENAME WHERE ROWNUM<=6 ORDER BY ID DESC; //返回按ID降序排列的前6条信息
2.字符串的拼接
2.1 MYSQL:使用CONCAT函数,语法为CONCAT(str1,str2,...),还有一个是CONCAT_WS(separator,str1,str2,...),此可在待拼接的字符串之间加入指定的分隔符,均可支持多个参数
例如:SELECT CONCAT('我是',‘拿 来’,'测试的') FROM TABLENAME; //返回‘我是拿 来测试的’
SELECT CONCAT_WS(',','AA','BB','CC') FROM TABLENAME; //返回‘AA,BB,CC’
2.2 MSSQLServer:使用“+”来拼接字符串
例如:SELECT ID+NAME FROM TABLENAME; //返回ID与NAME拼接后的字符串,若ID为001,NAME为AAA,则返回001AAA
2.3 Oracle:使用‘||’进行字符串的拼接,也可以使用CONCAT()函数进行拼接,但只支持两个参数
例如:SELECT ID||NAME FROM TABLENAME; //返回ID与NAME拼接后的字符串,若ID为001,NAME为AAA,则返回001AAA
SELECT CONCAT('NAME:',NAME) FROM TABLENAME; //若NAME为BBB,则返回NAME:BBB