MemSQL-追加查询类型对象
MemSQL定义了可在存储过程中使用的查询类型对象 例如,您可以执行以下操作:MemSQL-追加查询类型对象,sql,stored-procedures,singlestore,Sql,Stored Procedures,Singlestore,MemSQL定义了可在存储过程中使用的查询类型对象 例如,您可以执行以下操作: v_q QUERY(a INT,b INT)=选择1作为a,选择2作为b 我想做的是附加不同的查询对象,类似于下面两个选项中的任何一个: 鉴于: q_1 QUERY(a INT, b INT) = SELECT 1, 2; q_2 QUERY (a INT, b INT) = SELECT 2, 3; 第一种方法: q_3 QUERY(a INT, b INT) = q_2 + q_3; ECHO q_3; EC
v_q QUERY(a INT,b INT)=选择1作为a,选择2作为b代码>
我想做的是附加不同的查询对象,类似于下面两个选项中的任何一个:
鉴于:
q_1 QUERY(a INT, b INT) = SELECT 1, 2;
q_2 QUERY (a INT, b INT) = SELECT 2, 3;
第一种方法:
q_3 QUERY(a INT, b INT) = q_2 + q_3;
ECHO q_3;
ECHO q_2 + UNION SELECT 9, 10;
第二种方法:
q_3 QUERY(a INT, b INT) = q_2 + q_3;
ECHO q_3;
ECHO q_2 + UNION SELECT 9, 10;
有没有办法做到这一点?您可以将查询类型变量看作是表示select语句或视图的变量,因此您的第一种方法可以扩展为:
q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
您的第二种方法扩展为:
q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
它们都不是有效的SQL select语句
您可能需要以下内容:
q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
这将创建一个4列查询类型变量,将q_2
列附加到q_1
列
或者类似于:
q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
这将创建一个2列查询类型变量,将q_2
行附加到q_1