Sql server 基于文本列的SQL数学计算
我有一个有3个文本列的表格,我想在上面做一些数学计算。 下表如下所示:Sql server 基于文本列的SQL数学计算,sql-server,Sql Server,我有一个有3个文本列的表格,我想在上面做一些数学计算。 下表如下所示: Date Column1 Column2 Column3 ----------------------------------------- 2012-08-01 STABLE NEG STABLE 2012-08-02 NEG NEG STABLE 2012-08-03 STABLE STABLE STABLE 我想要实现的
Date Column1 Column2 Column3
-----------------------------------------
2012-08-01 STABLE NEG STABLE
2012-08-02 NEG NEG STABLE
2012-08-03 STABLE STABLE STABLE
我想要实现的是什么
- 如果2/3列等于“稳定”,则返回66%,即2/3,与第一行相同
- 如果1/3列等于“稳定”,则返回33%,即1/3,与第二行相同
- 如果3/3列等于“稳定”,则返回100%,即3/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
您可以对输出进行一些格式化,但应该非常接近您要查找的内容 如果这些是列值的唯一选择:
select ( Len( Column1 ) + Len( Column2 ) + Len( Column3 ) - 9 ) / 3 / 3.0 * 100.0 as 'Percent'
from Foo
优化器应该处理不断的折叠。为了清晰起见,显示了这些参数
描述这样编写代码的人的位置。此表是否有主键?还有,你关心性能吗?是的,它的主键是日期字段。我会试试看,让你看看know@RThomas将
/3
设置为/3.0
以获取百分比。这是一个感谢,它现在起作用了。我想知道是否有其他方法可以实现这一点。看看这些查询可用的选项。计算列怎么样?是的,没关系。但我说的是查询智能,我们是否还有其他方法可以做到这一点?