如何计算 CSV 文件中存在的逗号数

How to count number commas present in a CSV file

我有一个 csv 文件 (ABC.txt),其中包含如下数据:

1234,"djjdjd",45566,84774,45666,"djdjd"

我想计算此 CSV 文件的一行中存在的逗号数。

我怎样才能得到这个。

对于纯(oracle)sql 解决方案,尝试

 SELECT NVL(LENGTH(REGEXP_REPLACE(csv_row, '[^,]', '')), 0) FROM csv_table

假设您将 csv 文件中的数据存储在数据库中。

查询替换了原始字符串中除逗号外的所有字符,因此确定长度等同于计数。

请注意,您可能希望以不同方式处理 csv 字段中的逗号。

备选方案(参见 Alex K. 的评论)

SELECT LENGTH(csv_row) - NVL(LENGTH(REPLACE(csv_row, ',', '')), 0) FROM csv_table

REGEXP_COUNT() 可以轻松做到这一点:

with tbl(data_string) as
(
select '1234,"djjdjd",45566,84774,45666,"djdjd"' from dual
)
select regexp_count(data_string, ',') from tbl;