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 ,查找到了返回下标
相关推荐
liliangcsdn7 小时前
mac测试ollama llamaindex
数据仓库·人工智能·prompt·llama
码字的字节9 小时前
深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别
hadoop·capacity·fairscheduler
Johny_Zhao9 小时前
Centos8搭建hadoop高可用集群
linux·hadoop·python·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm
晴天彩虹雨1 天前
统一调度与编排:构建自动化数据驱动平台
大数据·运维·数据仓库·自动化·big data·etl
码字的字节1 天前
深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
hadoop·hdfs·rpc
白日与明月1 天前
Hive-vscode-snippets
hive·hadoop·vscode
Sirius Wu1 天前
Hive的窗口函数
数据仓库·hive·hadoop
码字的字节1 天前
深入解析HBase如何保证强一致性:WAL日志与MVCC机制
hadoop·hbase·wal·mvcc
シ風箏1 天前
Hive【安装 01】hive-3.1.2版本安装配置(含 mysql-connector-java-5.1.47.jar 网盘资源)
java·hive·mysql
zhixingheyi_tian1 天前
Hadoop 之 Yarn
大数据·hadoop·分布式