使用 FIRST 选项

FIRST max 选项指定结果集包括不多于 max 行(或正好 max,如果 max 不大于符合条件的行的数目的话)。 不返回满足选择条件的任何附加的行。下例最多从表 tab1 检索 10 行:
SELECT FIRST 10 a, b FROM tab1;

GBase 8s 可使用主变量或在本地变量中指定 max 的 SPL 输入参数的值。

随同 ORDER BY 子句,您可检索符合条件的行的前 max 行。例如,下列查询找到薪酬最高的 10 名雇员:
SELECT FIRST 10 name, salary FROM emp ORDER BY salary DESC;
您可使用在查询中的 FIRST 选项,该查询的结果集在另一 SELECT 语句的 FROM 子句之内定义集合派生的表(CDT)。下列查询指定有不多于 10 行的 CDR:
SELECT * 
        FROM TABLE(MULTISET(SELECT FIRST 10 * FROM employees 
        ORDER BY employee_id)) vt(x,y), tab2 
        WHERE tab2.id = vt.x;
在 FROM 子句中包括表表达式的查询中,FIRST 和 SKIP 关键字还有效:
SELECT * FROM (SELECT SKIP 2 FIRST 8 col1 FROM tab1 WHERE col1 > 50 );
下一示例将 FIRST 选项用于 UNION 表达式的结果:
SELECT FIRST 10 a, b FROM tab1 UNION SELECT a, b FROM tab2; 
在任何下列上下文中,FIRST 选项都无效: