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 ,查找到了返回下标
相关推荐
ClouderaHadoop14 小时前
CDH 最隐蔽的坑:NTP 时间同步导致的 5 类故障
hadoop·hbase·kerberos·cloudera·cdh
Gent_倪14 小时前
Hadoop生态组件介绍
大数据·hadoop
地球资源数据云15 小时前
1900-2023年中国物种分布点位矢量数据集
大数据·数据结构·数据库·数据仓库·人工智能
YaBingSec17 小时前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全
Leo.yuan17 小时前
数据仓库是什么?数据仓库和大数据平台、数据湖、数据中台、湖仓一体有什么区别?
大数据·数据仓库·spark
哥本哈士奇2 天前
数据仓库笔记 第六篇:PSA 层 SCD2 处理方式
数据仓库
曹牧2 天前
Java Web 开发:servlet-mapping‌
java·数据仓库·hive·hadoop
juniperhan2 天前
Flink 系列第20篇:Flink SQL 语法全解:从 DDL 到 DML,窗口、聚合、列转行一网打尽
大数据·数据仓库·分布式·sql·flink
菜鸟小码3 天前
HDFS 数据块(Block)机制深度解析:从原理到实战
大数据·hadoop·hdfs
早睡早起早日毕业3 天前
大数据管理与应用系列丛书《大数据平台架构》之第4章 Hadoop 分布式文件系统 (HDFS)
大数据·hadoop·架构