更新日期:2024年09月11日
功能说明
把选定的列直接存储到变量中。只有单一的行可以被取回。
注意
SQL 变量名能不能和列名一致。
如果SELECT ... INTO 这样的SQL 语句包含一个对列的参考,
并包含一个
与列相同名字的局部变量,会把参考解释为一个变量的名字。
语法格式
SELECT col_name[,...] INTO var_name[,...] table_expr
说明
该语句将选出的列存储到变量中。只有单一行的结果才可以被取回。
示例
示例1:SELECT intX INTO @intResult;
gbase> DELIMITER //
gbase> DROP PROCEDURE IF EXISTS doselect_into //
Query OK, 0 rows affected
gbase> CREATE PROCEDURE doselect_into (p1 INT)
BEGIN
DECLARE intX INT;
SET intX = 0;
REPEAT SET intX = intX + 1; UNTIL intX > p1 END REPEAT;
SELECT intX INTO @intResult;
SELECT @intResult;
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1361
END //
Query OK, 0 rows affected
gbase> DELIMITER ;
gbase> CALL doselect_into (1000);
+------------+
| @intResult |
+------------+
|
1001 |
+------------+
1 row in set
Query OK, 0 rows affected
示例2:列名与变量名相同,当这个程序被调用的时候,无论table.xname 列的值
是什么,变量newname 将返回值‘bob’。
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;