SQL在表中查找正则表达式的计数

时间:2018-07-03 10:54:55

标签: mysql postgresql

我怎么算总数。当我的表结构是这样时,表中出现了$符号:

c1 | c2 | c3 | c4 | c5|
$  |    |    | $  |   |  
   | $  |  $ | $  |   |   
   |    |    |    |   |
$  |    |    |    |   |  


($符号在表格的任何列中随机出现) 我试图通过正则表达式获取计数,但它始终返回否。存在$的行数,而不是$的数目。

1 个答案:

答案 0 :(得分:3)

您可以在内部计数中使用case来计算列中$的出现次数

select 
  count(case when c1 = '$' then 1 else null end) 
+ count(case when c2 = '$' then 1 else null end)
+ count(case when c3 = '$' then 1 else null end) 
+ count(case when c4 = '$' then 1 else null end) 
+ count(case when c5 = '$' then 1 else null end) cnt
from your_table

Demo Mysql

Demo Postgre