2016-07-14 5 views
0

それはとてもシンプルに見えますが、私はそれに対する答えを見ません。ここに私の質問です。列内の算術演算子

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

私はcol1col2との演算が必要になることがある(すなわち。12*24/100 = 2.88)が、Oracleは、式を有する演算処理を行うためにどのように文字列の値として処理され、'12*24/100'

として結果を提供しますある列には値があり、他の列には値がありますか?

+1

まず、このoracleまたはsqlサーバーですか?第2に、DBMSを使用してデータを格納および検索します。 varcharの内容を数式として計算するには、動的SQLが必要です。 –

+0

あなたの答えに感謝Sean lange。 そのoracle dbです。 – 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>