如何使用SQL对列中的特殊字符进行计数
我有一个列,其中包含如下值:如何使用SQL对列中的特殊字符进行计数,sql,Sql,我有一个列,其中包含如下值: Column_1 3 4 -94#30#56# 56 730#-58# 如果列值包含#,则计算#的数量并替换这些现有值 我的输出应该是 Column_1 3 4 3 56 2 一种方法是使用SQLREPLACE函数,将包含的列的原始长度与删除所有的长度进行比较: SELECT CASE WHEN Column_1 LIKE '%#%' THEN CAST(LEN(Column_1) - LEN(REPLACE(Column_1, '#'
Column_1
3
4
-94#30#56#
56
730#-58#
如果列值包含#,则计算#的数量并替换这些现有值
我的输出应该是
Column_1
3
4
3
56
2
一种方法是使用SQL
REPLACE
函数,将包含
的列的原始长度与删除所有
的长度进行比较:
SELECT
CASE WHEN Column_1 LIKE '%#%'
THEN CAST(LEN(Column_1) - LEN(REPLACE(Column_1, '#', '')) AS VARCHAR(100))
ELSE Column_1 END AS Column_1
FROM yourTable;
我使用了SQL Server语法,需要针对其他数据库调整查询。请尝试下面的查询
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
你的数据库是什么?数据库是SparkSQL