如何 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;
我有一个存储文本值的简单模型。我喜欢计算结果不是“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;