首页 > 解决方案 > SQL-如何获取列中字符串中数字子字符串的计数

问题描述

我有一张名为Garden.

Garden表中,有一列以Fruit数千行命名,每一行Fruit都有逗号分隔的值,如,Apple等 。BananaPear

我想要获取列中每一行中水果数量的计数,Fruit例如如果第一行有Apple, Banana, Pear,那么计数应该返回 3。

如何为它编写一个 sql 查询。

我尝试使用正则表达式,但它不起作用。

标签: sqloracle

解决方案


如果您使用的是 Oracle 数据库,那么您可以使用REGEXP_COUNT正则表达式。查找以下示例:-

     创建餐桌花园(水果varchar2(1000));

     插入花园 VALUES('apple,bananan,pear');
     插入花园 VALUES('橙子,香蕉');
     插入花园 VALUES('苹果、香蕉、梨、橙');

     从花园中选择*;

     输出:-

     水果
     ------------------
     苹果、香蕉、梨
     橙子,香蕉
     苹果、香蕉、梨、橙

现在您可以使用以下查询来获取计数。

select REGEXP_COUNT(Fruit, ',')+1 as fruit_count from garden;


推荐阅读