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 ,查找到了返回下标
相关推荐
Theodore_10227 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
簌簌曌7 小时前
CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
大数据·hadoop·spark
Theodore_10229 小时前
大数据(1) 大数据概述
大数据·hadoop·数据分析·spark·hbase
IvanCodes11 小时前
六、Sqoop 导出
大数据·hadoop·sqoop
workflower12 小时前
以光量子为例,详解量子获取方式
数据仓库·人工智能·软件工程·需求分析·量子计算·软件需求
weixin_4723394613 小时前
Doris查询Hive数据:实现高效跨数据源分析的实践指南
数据仓库·hive·hadoop
火龙谷14 小时前
【hadoop】相关集群开启命令
大数据·hadoop·分布式
神奇侠20241 天前
Hive SQL常见操作
hive·hadoop·sql
SelectDB技术团队1 天前
从 ClickHouse、Druid、Kylin 到 Doris:网易云音乐 PB 级实时分析平台降本增效
大数据·数据仓库·clickhouse·kylin·实时分析
itachi-uchiha1 天前
Docker部署Hive大数据组件
大数据·hive·docker