我有一张桌子。 在此表中有一些示例数据。
表数据:
从表
中选择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
答案 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