【Hive SQL】字符串操作函数你真的会用吗?

前言:

今天在做一个需求的时候,需要判断字符串中是否包含一个子串,然后我发现了我平常没注意到的一个点,通过这篇博文来记录一下。

IN

IN 函数用于判断一个元素是否存在于所给的元素组中,如果存在则返回 true不存在则返回 false

例如:

SELECT 'a' IN('a','b','c');
-- true

在这里插入图片描述

所给的元素组需要用小括号引用。

当我在使用 IN 函数的时候犯了一个错误,如下所示:

SELECT 'a' IN('aaa');
-- false

在这里插入图片描述

我下意识的认为 IN 函数是判断 a 是否存在于字符串 aaa 中,故误认为返回结果是 true,之前用好像也没毛病,但往往就容易在这种小细节上犯错。

一定要注意,IN 函数是判断某个元素是否【完全等于】所给元素组中的某项内容,而不是包含!!!

INSTR

INSTR(str, substr):返回子串 substr 在字符串 str第一次出现的位置,如果未找到,则返回 0

例如:

SELECT INSTR('Hello,World', 'World'); 
-- 7

SELECT INSTR('Hello,World Hello,World2', 'World'); 
-- 7

应用场景:常常用于判断字符串中是否包含给定子串。

SUBSTR

SUBSTR(str, pos, len):返回字符串 str 中从位置 pos 开始的长度为 len 的子串。

例如:

SELECT SUBSTR('Hello,World', 7, 5); 
-- World

应用场景:获取字符串中的子串。

LOCATE

LOCATE(substr, str):返回子串 substr 在字符串 str第一次出现的位置,如果未找到,则返回 0LOCATEINSTR 的同义词,区别是 LOCATE 子串在前,而 INSTR 是字符串在前。

例如:

SELECT LOCATE('World','Hello,World'); 
-- 7

SELECT LOCATE('World','Hello,World Hello,World2'); 
-- 7

应用场景:常常用于判断字符串中是否包含给定子串。

LIKE

LIKE:用于模糊匹配字符串,通常与通配符 %_ 一起使用,但不是严格的子串查找函数。

例如:

SELECT 'Hello,World' LIKE '%World%'; 
-- true

SELECT 'Hello,World Hello,World2' LIKE '%World%'; 
-- true

应用场景:用于匹配字符串中包含特定子串的情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月亮给我抄代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值