Select table1.column1, table2.column1, calcuate(table1.column2) as result
from table1, table2
where table1.id = table2.fkid
說table1.column2是一個varchar,值是 「= table1.column1 * table2.column1」。我希望我的查詢實際計算該公式而不是返回文本。思考?如何計算查詢返回的字段中的公式?
Select table1.column1, table2.column1, calcuate(table1.column2) as result
from table1, table2
where table1.id = table2.fkid
說table1.column2是一個varchar,值是 「= table1.column1 * table2.column1」。我希望我的查詢實際計算該公式而不是返回文本。思考?如何計算查詢返回的字段中的公式?
據我所知,有沒有像JavaScript的SQL中的評價。如果你只有幾個公式,你可以在你的SQL中嘗試一個CASE開關。 但是總的來說,你可能應該重新考慮一下你的Architecure - SQL語句,如果你有變化,這些語句很難維護。 (你應該總是期望的變化......)
例子:
Select a.column1, b.column1, CASE WHEN b.column2 = 'Multiply' THEN a.column1 * b.column1 WHEN b.column2 = 'Divide' THEN a.column1/b.column1 ELSE 0 END from table1 a, table2 b where a.id = b.fkid
在MSSQL中,你有EXEC命令,但在MySQL中,你沒有擁有它。 你有2種選擇:
你需要使用一些[動態SQL](http://www.sommarskog.se/dynamic_sql.html)至拉下來。 – 2012-02-09 14:08:21
我不認爲這在T-SQL(或我知道的任何其他SQL方言)中是可能的。 – bfavaretto 2012-02-09 14:09:17
我強烈建議您不要使用此方法。數據庫用於CRUD。任何其他應該在應用程序中執行。 – Oybek 2012-02-09 14:08:50