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 ,查找到了返回下标
相关推荐
qzWsong27 分钟前
hive 自动检测、自动重启、记录检测日志、自动清理日志
数据仓库·hive·hadoop
milk_yan2 小时前
MinIO的安装与使用
linux·数据仓库·spring boot
Ray.19985 小时前
Flink 的核心特点和概念
大数据·数据仓库·数据分析·flink
lisacumt5 小时前
【kerberos】使用keytab文件,kerberos认证工具类 scala版本
hadoop·scala
MasterNeverDown7 小时前
WPF 使用iconfont
hadoop·ui·wpf
三生暮雨渡瀟瀟11 小时前
解决HiveSQL查询出现Java.lang.OutMemoryError.java heap space
hive
B站计算机毕业设计超人20 小时前
计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫
大数据·hadoop·python·spark·课程设计·数据可视化·推荐算法
viperrrrrrrrrr71 天前
大数据学习(36)- Hive和YARN
大数据·hive·学习
重生之Java再爱我一次1 天前
Hive部署
数据仓库·hive·hadoop
想做富婆1 天前
大数据,Hadoop,HDFS的简单介绍
大数据·hadoop·分布式