我有一个包含3个文本列的表,我想在其上进行一些数学计算。 表如下所示:
Date Column1 Column2 Column3
-----------------------------------------
2012-08-01 STABLE NEG STABLE
2012-08-02 NEG NEG STABLE
2012-08-03 STABLE STABLE STABLE
想要实现是
我想知道如何使用SQL实现这一目标?我目前正在研究MSSQL Server 2008 R2。
我希望我的问题很清楚。
答案 0 :(得分:3)
那么,这样的事情呢?
select
((case when col1 = 'Stable' then 1.0 else 0.0 end) +
(case when col2 = 'Stable' then 1.0 else 0.0 end) +
(case when col3 = 'Stable' then 1.0 else 0.0 end)) / 3.0
from yourtable
您可以对输出进行一些格式化,但应该非常接近您的要求。
答案 1 :(得分:0)
如果这些是列值的唯一选择:
select ( Len( Column1 ) + Len( Column2 ) + Len( Column3 ) - 9 ) / 3 / 3.0 * 100.0 as 'Percent'
from Foo
优化器应该处理常量折叠。为清楚起见,显示了它们。
Divine Comedy为编写此类代码的人描述了一个地方。