我该如何计算表值

时间:2017-04-26 11:29:36

标签: tsql

我有一张桌子。 在此表中有一些示例数据。

表数据:

从表

中选择col1

结果集:

COL1

1 + 2 + 3 + 45-6 + 7 + 8-9
1 + 2 + 3 + 45-6 + 7 + 89
1 + 2 + 3 + 45-6 + 7-8 + 9
1 + 2 + 3 + 45-6 + 7-8-9
...
..
点。

有没有办法计算列数据?

像这样:

从表

中选择col1,Calculate(col1)为col2

COL1 COL2

----------------- -------------
1 + 2 + 3 + 45-6 + 7 + 8-9 51
1 + 2 + 3 + 45-6 + 7 + 89 141
1 + 2 + 3 + 45-6 + 7-8 + 9 53
1 + 2 + 3 + 45-6 + 7-8-9 35

1 个答案:

答案 0 :(得分:1)

只是为了好玩

Declare @YourTable table (col1 varchar(100))
Insert Into @YourTable values
('1+2+3+45-6+7+8-9'), 
('1+2+3+45-6+7+89'), 
('1+2+3+45-6+7-8+9'), 
('1+2+3+45-6+7-8-9')

 Declare @SQL varchar(max) = ''
 Select @SQL = @SQL + ',('''+col1+''','+col1+')' From  @YourTable
 Select @SQL = 'Select * From (values '+Stuff(@SQL,1,1,'')+') A (col1,col2)'
 Exec(@SQL)

返回

col1                col2
1+2+3+45-6+7+8-9    51
1+2+3+45-6+7+89     141
1+2+3+45-6+7-8+9    53
1+2+3+45-6+7-8-9    35