https://www.youtube.com/watch?v=3sd5siyCAOo&list=PLBTZqjSKn0IfuIqbMIqzS-waofsPHMS0E&index=13

-- Creating the table
CREATE TABLE input (
    id INT,
    formula VARCHAR(10),
    value INT
);

-- Inserting records into the table
INSERT INTO input (id, formula, value) VALUES 
    (1, '1+4', 10),
    (2, '2+1', 5),
    (3, '3-2', 40),
    (4, '4-1', 20);

Pasted image 20241114162943.png

LEFT()
RIGHT()
SUBSTRING()
WITH
CASE WHEN

-- Derive a new column for the result of formula.

WITH CTE AS
(SELECT 
    *,
    LEFT(formula, 1) AS d1,
    RIGHT(formula, 1) AS d2,
    SUBSTRING(formula, 2, 1) AS o
FROM
    input)


SELECT i.id,i.value,cte.formula,
CASE WHEN o = '+' THEN i.value+i2.value ELSE i.value-i2.value END AS new_value
FROM CTE INNER JOIN input i ON CTE.d1=i.id
INNER JOIN  input i2 ON CTE.d2=i2.id
ORDER BY id;

Pasted image 20241114163233.png