如何使用SQL计算列中的特殊字符

时间:2019-07-11 02:57:56

标签: sql

我有一个包含如下值的列:

Column_1
3
4
-94#30#56#
56
730#-58#

如果列值包含#,则计算#的数量并替换那些现有值。

我的输出应该看起来像

Column_1
3
4
3
56
2

2 个答案:

答案 0 :(得分:3)

一种方法是使用SQL REPLACE函数并将包含Column_1的{​​{1}}值的原始长度与已删除所有#的长度进行比较:

#

我使用了SQL Server语法,并且该查询需要针对其他数据库进行调整。

答案 1 :(得分:0)

请在下面的查询中尝试

SELECT 
    CASE WHEN (len(Column_1) - len(replace(Column_1,'#',''))) > 0 
    THEN 
        (len(Column_1) - len(replace(Column_1,'#','')))  
    ELSE 
        Column_1 
    END 
FROM @tbl