检索单行

SELECT 语句返回的行集是它的活动集单个 SELECT 语句返回单个行。您可使用嵌入式 SELECT 语句来从数据库将单个行检索到主变量内。然而,当 SELECT 语句返回多行数据时,程序必须使用游标来一次检索一行。在 检索多行 中讨论“多行”选择操作。

要检索单行数据,只要在您的程序中嵌入 SELECT 语句。下列示例展示您可如何使用 GBase 8s ESQL/C 来编写嵌入式 SELECT 语句:
EXEC SQL SELECT avg (total_price)
        INTO :avg_price
        FROM items
        WHERE order_num in
        (SELECT order_num from orders 
        WHERE order_date < date('6/1/98') );

INTO 子句是将此语句与 编写 SELECT 语句编写高级 SELECT 语句 中的任何示例区分开来的唯一细节。此子句指定要检索产生的数据的主变量。

当程序执行嵌入式 SELECT 语句时,数据库服务器执行该查询。示例语句选择聚集值,以便于它恰好产生一行数据。该行仅有单个列,且它的值存储在名为 avg_price 的主变量中。程序的后续行可使用那个变量。

您可使用此类语句来将单行数据检索到主变量内。单个行可有所期望的许多列。如果查询产生多行数据,则数据库服务器不可返回任何数据,而是返回一个错误代码。

您在 INTO 子句中罗列的主变量应与选择列表中的项一样多。如果这些列表的长度碰巧不一样,则数据库服务器返回尽可能多的值并在 SQLWARN 的第四个字段中设置警告标志。