我有一个csv文件(ABC.txt),其数据如下:
1234, “djjdjd”,45566,84774,45666, “djdjd”
我想计算此CSV文件的一行中出现的逗号数。
我怎么能得到这个。
答案 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