MemSQL - добавлять объекты типа запроса - PullRequest
0 голосов
/ 21 февраля 2019

MemSQL определяет объект типа запроса, который можно использовать внутри хранимых процедур.

Например, вы можете сделать следующее: v_q QUERY(a INT, b INT) = SELECT 1 AS a, 2 AS 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;

Есть ли способ достичь этого?

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете думать о переменных типа запроса как о представлении операторов выбора или представлений, поэтому ваш первый подход расширяется до чего-то вроде:

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;

ни один из которых не является допустимым оператором выбора SQL.

Возможно, вы захотите что-то вроде:

q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;

, которое создаст 4-столбцовую переменную типа QUERY со столбцами q_2 добавлено к столбцам q_1.

Или что-то вроде:

q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;

, что создаст переменную типа QUERY с двумя столбцами для строк q_2, добавленных к строкам q_1

...