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);
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;