给定一个作为计算语句的字符串组合,我怎样才能得到结果,在本例中是下面代码中的列 cal 。
我知道我可以使用案例,但是有没有直接的方法来进行计算?
create table tl_test
(
cl1 int
)
create table tl_test2
(
cl1 char(1)
)
insert into tl_test values (21), (43), (13), (36), (41)
insert into tl_test2 values ( '+'), ('-'), ('*'), ('/')
select *,
cast(c1 as varchar) + f1
+ cast(c2 as varchar) + f2
+ cast(c3 as varchar) + f3
+ cast(c4 as varchar) + f4
+ cast(c5 as varchar) as cal
from(
SELECT A.cl1 as c1, f1.cl1 as f1, b.cl1 as c2,f2.cl1 as f2, C.cl1 as c3, f3.cl1 as f3, D.cl1 as c4, f4.cl1 as f4, E.cl1 as c5
FROM TL_TEST A
CROSS JOIN TL_TEST2 f1
CROSS JOIN TL_TEST B
CROSS JOIN TL_TEST2 f2
CROSS JOIN TL_TEST C
CROSS JOIN TL_TEST2 f3
CROSS JOIN TL_TEST D
CROSS JOIN TL_TEST2 f4
CROSS JOIN TL_TEST E
)a
WHERE c1 != c2
and c1 != c3
and c1 != c4
and c1 != c5
and c2 != c3
and c2 != c4
and c2 != c5
and c3 != c4
and c3 != c5
and c4 != c5
您可以存储结果cal字符串中的列并使用EXEC https://msdn.microsoft.com/en-us/library/ms188332.aspx来计算你的答案。
DECLARE @sql NVARCHAR(MAX) = 'SELECT ' + (SELECT TOP 1 cal FROM result)
EXEC(@sql)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)