Здравствуйте, я много искал это, и я не смог найти хорошее решение для этого.
Представим, что у меня есть следующий запрос
Select width, height, depth, formula from myTable
Я хочу сделать замену вформула для преобразования w в значения ширины h в значения высоты d в значения глубины
, а затем я хочу преобразовать эту результирующую строку ex: '(1 + 2) * 3' в выражение, чтобы оно вычислялось.
Я сталкивался с некоторыми ответами, используя
exec ('select '+@expression)
Но это не работает для каждой строки.Я просто не могу использовать exec внутри выбора.Как это
select 1 as col1, exec ('select '+@expression) as col2
Или даже преобразовать строку в выражение что-то вроде
Cast('1+1' as expression)
Конечный результат, который мне нужен, прост.следует ниже.
+-------+--------+-------+---------+--------+
| width | height | depth | formula | result |
+-------+--------+-------+---------+--------+
| 1 | 2 | 3 | (w+h)*d | 12 |
+-------+--------+-------+---------+--------+
| 2 | 1 | 3 | d+d*h | 6 |
+-------+--------+-------+---------+--------+
| 3 | 3 | 1 | (d/4)*d | 0.25 |
+-------+--------+-------+---------+--------+