Hive中查看字段中是否包含某些字符串的函数

sql 复制代码
CREATE TABLE employee (
    name STRING,
    age INT
);

INSERT INTO employee VALUES
    ('Alice', 25),
    ('Bob', 30),
    ('Charlie', 35),
    ('David', 40);

首先我们在hive中创建表插入数据进行测试

方案一:like

sql 复制代码
select * from employee where name like '%i%';
#返回name中包含i的数据

like可以直接起一个过滤作用,用起来简单方便放在第一个。

方案二:locate(字符名,字段名)

sql 复制代码
select locate('i',name) from employee;
#返回包含i字段中i的位置如果为0则说明不包含i

返回字符串aaa在字段field_name中第一次出现的位置,若未出现,则返回0

方案三:instr(字段名,字符串)

sql 复制代码
select locate(name,'i') from employee;
#返回包含i字段中i的位置如果为0则说明不包含i

返回字符串aaa在字段field_name中第一次出现的位置,若未出现,则返回0

方案四:regexp_extract

sql 复制代码
regexp_extract(subject, 'ABCD', 0) != ''

select *,regexp_extract(name,'ice',0) from employee where regexp_extract(name,'ice',0) !='';

其中,subject是要判断的字符串,'ABCD;'是要匹配的字串,0表示从整个匹配结果中获取整个字串。如果返回的字串不为空,则说明匹配到了,即包含字串'ABCD',否则不包含。你需要将your_table替换为你实际使用的表名或子查询。

方案五:strpos [hive 不支持,其他技术支持 ]

sql 复制代码
strpos(string str, string substr)
-- str 是源字符串,substr 是要查找的字符串,查找子字符串在源字符串中第一次出现的位置,如果查找不--- 到范围0 ,查找到了返回下标
相关推荐
三劫散仙2 小时前
Hadoop + Hive + Apache Ranger 源码编译记录
hive·hadoop·hbase·ranger
dogplays5 小时前
sqoop import将Oracle数据加载至hive,数据量变少,只能导入一个mapper的数据量
hive·oracle·sqoop
zmd-zk5 小时前
hive中windows子句的使用
大数据·数据仓库·hive·hadoop·windows·分布式·big data
Natural_yz14 小时前
大数据学习09之Hive基础
大数据·hive·学习
Natural_yz14 小时前
大数据学习10之Hive高级
大数据·hive·学习
不二人生15 小时前
SQL面试题——连续出现次数
hive·sql·面试
大数据魔法师15 小时前
Hadoop生态圈框架部署(六)- HBase完全分布式部署
hadoop·分布式·hbase
紫色沙17 小时前
大数据专业为什么要学习Hadoop课程
大数据·hadoop·学习
字节数据平台19 小时前
基于OLAP湖仓一体架构,火山引擎ByteHouse助力企业降本提效
数据仓库·火山引擎
isNotNullX20 小时前
数据仓库还是数据集市?这俩怎么选?
大数据·数据仓库·分布式·etl