不同数据库的限制结果输出的不同写法
SELECT语句返回指定表中所有匹配的行,很可能是每一行。 返回第一行或者一定数量的行,该怎么办呢?这是可行的,然而遗憾的是,各种数据库中的这一SQL实现并不相同。
SQL Server和Access中使用SELECT时,可以使用TOP关键字来限制最多返回多少行,如下所示:
SELECT TOP 5 prod_name FROM Products;
使用的是DB2,很可能习惯使用下面这一DBMS特定的SQL语句,像这样:
SELECT prod_name FROM Products FETCH FIRST 5 ROWS ONLY;
使用Oracle,需要基于ROWNUM(行计数器)来计算行,像这样:
FROM Products WHERE ROWNUM <=5;
使用MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT子句,像这样:
SELECT prod_name FROM Products LIMIT 5;
上述代码使用SELECT语句来检索单独的一列数据。LIMIT 5指示MySQL等DBMS返回不超过5行的数据。这个语句的输出参见下面的代码。为了得到后面的5行数据,需要指定从哪儿开始以及检索的行数,如下:
SELECT prod_name FROM Products LIMIT 5 OFFSET 5;
LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数