簡體   English   中英

從字段ssql計算值

[英]Calculate value from field ssql

我在Postgres中有一列(varchar),值看起來像這樣

1*2
9/3
23+33
2-1
3*3
123*32

我想直接從每個單元格計算結果。 一種方法是分離值,然后進行計算。 我想問一下是否有任何方法可以直接進行計算。

您可以使用plpgsql函數執行此操作:

CREATE OR REPLACE FUNCTION evaluate_from_text(my_text character varying )
  RETURNS  text AS
$BODY$
declare 
s text;
x text;
begin

s:='';

FOREACH x  IN ARRAY string_to_array(my_text,' ') LOOP
  execute 'SELECT ' || x into x;    
    s := format ('%s %s',s , x);
  END LOOP;

return s;

end;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100

並輸出:

Select evaluate_from_text('1*2 9/3 23+33 2-1 3*3 123*32');

是:

2 3 56 1 9 3936

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM