3

すべてのエントリが算術式(つまり1+2+3など)の形式であるテーブルがあります。

この表では、すべての列のタイプはvarcharです。テーブルにはこのような列がたくさんあります。

数式を計算して、その値を別の数式に挿入したいと思います。これを達成する方法について何か提案はありますか?

4

3 に答える 3

3

これを試すことができます。これがお役に立てば幸いです。t1 から式を取得し、結果を t2 に入れます。テーブルから削除するときに t1 を実際のテーブルにしたくないので、実際のテーブルの値を一時テーブルにコピーできます

declare @t as table(val varchar(20))
declare @t2 as table(val varchar(20))
insert into @t values
('1+3'),
('2*3'),
('9+3*2')


declare @exp varchar(20)
while(exists(select 1 from @t))
begin
    select top(1) @exp = val from @t

    insert into @t2
    exec ('select '+@exp)  

    delete top (1) from @t
end

select * from @t2

結果

val
------
4
6
15

これらのリンクを確認できます同様の質問はこちらおよび文字列を式で10進数に変換する

于 2012-08-16T08:07:42.977 に答える
0

リンクをたどる - 式を含む文字列を 10 進数に変換する

関数 DBO.EVAL を作成したら、実行するだけです:-

select dbo.eval(column_name) from table_name;
于 2012-08-16T07:30:40.373 に答える