By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE
INSERT 0 5
| 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 |
SELECT 5
| 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 |
SELECT 2
| left_node_id | right_node_id | left_value | right_value | expr_value |
|---|---|---|---|---|
| 1 | 1 | - | - | REPLACE[1] |
| 2 | 3 | 7 | * | 7-REPLACE[3] |
| 4 | 5 | 2 | 3 | 7-2*3 |
SELECT 3