我在下面有一张桌子。
如何获取特定行中值为“M”的列值的计数?
例如:如果我给出条件,其中 shape_name='Rectangle' 它将返回值为 = 'M' 的列的计数。结果:计数为 2
If True L-Left=> Result: count is 4 如何得到答案。?请帮我修复它。
CASE WHEN 的解决方案是这样的:
SELECT shape_name,
CASE WHEN a = 'm' THEN 1 ELSE 0 END +
CASE WHEN b = 'm' THEN 1 ELSE 0 END +
CASE WHEN c = 'm' THEN 1 ELSE 0 END as mcount
FROM t1
只需将 SQL 调整为您的表结构 - 您将需要CASE WHEN
为每列查找更多语句
select SHAPE_NAME ,
DECODE(COLUMN_NAME1,'M',1,0)+
DECODE(COLUMN_NAME2,'M',1,0)+
DECODE(COLUMN_NAME3,'M',1,0)+
DECODE(COLUMN_NAME4,'M',1,0) your_count
from YOUR_TABLE where shape_name='Rectangle' ;
非常旧的解决方案 - 获取所有列,遍历所有列,并计算M
.