By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE
INSERT 0 10
| expression_id | node_id | value | side | parent_node_id |
|---|---|---|---|---|
| 1 | 1 | - | null | null |
| 1 | 2 | 7 | L | 1 |
| 1 | 3 | * | R | 1 |
| 1 | 4 | 2 | L | 3 |
| 1 | 5 | 3 | R | 3 |
| 2 | 1 | * | null | null |
| 2 | 2 | - | L | 1 |
| 2 | 3 | 3 | R | 1 |
| 2 | 4 | 7 | L | 2 |
| 2 | 5 | 2 | R | 2 |
SELECT 10
| expression_id | parent_node_id | left_node_id | right_node_id | left_value | right_value |
|---|---|---|---|---|---|
| 1 | 1 | 2 | 3 | 7 | * |
| 1 | 3 | 4 | 5 | 2 | 3 |
| 2 | 1 | 2 | 3 | - | 3 |
| 2 | 2 | 4 | 5 | 7 | 2 |
SELECT 4
| expression_id | left_node_id | right_node_id | left_value | right_value | expr_value |
|---|---|---|---|---|---|
| 1 | 1 | 1 | - | - | REPLACE[1] |
| 1 | 2 | 3 | 7 | * | 7-REPLACE[3] |
| 1 | 4 | 5 | 2 | 3 | 7-2*3 |
| 2 | 1 | 1 | * | * | REPLACE[1] |
| 2 | 2 | 3 | - | 3 | REPLACE[2]*3 |
| 2 | 4 | 5 | 7 | 2 | (7-2)*3 |
SELECT 6