如何 count/sum 一行中的文本单元格数

How to count/sum the number of text cells in a row

我有一个存储文本值的简单模型。我喜欢计算结果不是“nincs”的单行中有多少个文本单元格。

在这种情况下,我喜欢 (kap_bar_01 + kap_bar_02 + kap_bar_03 + kap_bar_04 + kap_bar_05),我需要的结果是 3.

我试过了但是不行:

SELECT (kap_bar_01 + kap_bar_02 + kap_bar_03 + kap_bar_04 + kap_bar_05) FROM mymodell

结果为 0。

提前致谢!

假设列不可为空,您可以对布尔表达式求和:

SELECT (kap_bar_01 <> 'nincs') + 
       (kap_bar_02 <> 'nincs') + 
       (kap_bar_03 <> 'nincs') + 
       (kap_bar_04 <> 'nincs') + 
       (kap_bar_05 <> 'nincs') AS result 
FROM mymodell;

如果它们可以为空,也使用 COALESCE():

SELECT (COALESCE(kap_bar_01, '') <> 'nincs') + 
       (COALESCE(kap_bar_02, '') <> 'nincs') + 
       (COALESCE(kap_bar_03, '') <> 'nincs') + 
       (COALESCE(kap_bar_04, '') <> 'nincs') + 
       (COALESCE(kap_bar_05, '') <> 'nincs') AS result 
FROM mymodell;