Reputation: 636
Because SAP HANA doesn't support CTEs, I'd like to learn to use table variables in joins.
I've found simple examples of using table variables in a join in SQL Server, like below: https://www.youtube.com/watch?v=2fc6YUCQSV8
I have not found any simple examples of creating table variables in SAP HANA, let alone using them in a join.
Does anyone have a simple example of how to create a table variable and use it in a join in SAP HANA?
Thanks!
Upvotes: 1
Views: 706
Reputation: 1193
You can create table variables either by defining the structure and inserting values or you can create it by direct assignment. When using the variable name in a statement, you need to prefix with a colon. Please find some examples in the code below:
DO BEGIN
-- declaring table variables
DECLARE tab1 TABLE(ID INTEGER, PHRASE VARCHAR(20));
DECLARE tab2 TABLE(ID INTEGER, PHRASE VARCHAR(20));
-- filling values
INSERT INTO :tab1 VALUES (0, 'Hello');
INSERT INTO :tab1 VALUES (1, 'Hallo');
INSERT INTO :tab2 VALUES (0, 'World');
INSERT INTO :tab2 VALUES (1, 'Welt');
-- joining both
SELECT a.PHRASE, b.PHRASE
FROM :tab1 a
JOIN :tab2 b ON a.ID = b.ID;
-- declaring table variable via assignment
tab3 = SELECT 0 ID, '!' PHRASE FROM DUMMY;
-- joining all three
SELECT a.PHRASE, b.PHRASE, c.PHRASE
FROM :tab1 a, :tab2 b, :tab3 c
WHERE a.ID = b.ID;
END;
More detailed information with examples can be found in the documentation:
Upvotes: 4