2016-07-14 99 views
0

它看起来很简单,但我没有看到它的任何答案。这是我的问题。列内的算术运算符

Table 
Col1, Col2 
12, *24/100 
8,*12*24/10 

我需要与col1col2(即12*24/100 = 2.88)的算术运算,但甲骨文是处理作为一个字符串值,并给出结果作为'12*24/100'

怎么做,你有公式的运算在其他列中的一列和值?

+1

首先是这个oracle或sql server吗?其次,DBMS用于存储和检索数据。如果你想要它计算一个varchar的内容作为数学公式,你需要动态sql。 –

+0

谢谢你的回答肖恩兰格。 它是一个oracle数据库。 – Rathna

回答

1

您可以使用xmlquery,但我不得不认为有更好的方法。让我们看看人们想出了什么。

SQL> with tbl(val, formula) as (
    select 12, '*24/100' from dual union 
    select 8, '*12*24/10' from dual 
    ) 
    select xmlquery(replace(val || formula, '/', ' div ') 
      returning content).getNumberVal() as result 
    from tbl; 

    RESULT 
---------- 
    230.4 
     2.88 

SQL>