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

时间:2015-04-21 11:40:29

标签: sql oracle plsql

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

1234, “djjdjd”,45566,84774,45666, “djdjd”

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

我怎么能得到这个。

2 个答案:

答案 0 :(得分:4)

REGEXP_COUNT()可以轻松完成此任务:

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

答案 1 :(得分:3)

对于纯(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