如何计算 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;
我有一个 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;