Create Table T
(a int;
b nchar(1);
c int
)
insert into t(a,b,c) Values(100,'-',20)
insert into t(a,b,c) Values(110,'+',20)
insert into t(a,b,c) Values(900,'*',400)
insert into t(a,b,c) Values(900,'/',300)select abc from t
如何将b列转为运算符,计算得如下结果
abc 100-20=80
abc 110+20=130
abc 900*400=3600
abc 900/300=3
(a int;
b nchar(1);
c int
)
insert into t(a,b,c) Values(100,'-',20)
insert into t(a,b,c) Values(110,'+',20)
insert into t(a,b,c) Values(900,'*',400)
insert into t(a,b,c) Values(900,'/',300)select abc from t
如何将b列转为运算符,计算得如下结果
abc 100-20=80
abc 110+20=130
abc 900*400=3600
abc 900/300=3
from t a
case when a.b='+' then a.a+a.c when a.b='-' then a.a-a.c when a.b='*' then a.a*a.c when a.b='/' then a.a/a.c end
from t a100-20 80
110+20 130
900*400 360000
900/300 3
CONVERT(varchar(10),case b when '+' then a+c
when '+' then a+c
when '-' then a-c
when '*' then a*c
when '/' then a/c end)
from t
'abc',
CONVERT (varchar(10),a) +
CONVERT (varchar(10),b)
+CONVERT (varchar(10),c) +'=' +
CONVERT (varchar(10),
CASE
WHEN b='-' THEN
a-c
WHEN b='+' THEN
a+c
WHEN b='*' THEN
a*c
WHEN b='/' THEN
a/c
END
)
FROM t