当前位置: 首页 > article >正文

hive两张表实现like模糊匹配关联

testa表(字段a)
  aaa
  bba
  cccddd
  dddaaa

testb表(字段b)
   a
   b
   
1. 使用like+concat模糊配对
select
   a.a
from testa a ,testb b
where a like concat('%',b.b,'%')
group by a.a

2. 使用locate函数
select
   a.a
from testa a ,testb b
where locate(b.b,a.a)>0
group by a.a

3. 使用instr函数
select
   a.a
from testa a ,testb b
where instr(a.a,b.b)>0
group by a.a

3. 使用split函数
select
   a.a
from testa a ,testb b
where split(a.a,b.b)[1] is not null
group by a.a

注:
1.需要除重操作,比如:a表符合b两个将产生两条记录。
2.上面都会产生笛卡尔积,所以要注意数据量级。如果两个表都比较大,可以考虑将表拆分分别关联。
3.like效率比较低最好少用


http://www.kler.cn/a/153921.html

相关文章:

  • 【初阶数据结构与算法】线性表之栈和队列的定义与实现(含源码和有效的括号练习)
  • LabVIEW 温湿度测试与监控系统
  • 散户持股增厚工具:智能T0算法交易
  • 初学者编程语言的选择
  • 【c++丨STL】list的使用
  • TON商城与Telegram App:生态融合与去中心化未来的精彩碰撞
  • 基于OGG实现Oracle实时同步MySQL
  • 人工智能_AI服务器安装清华开源_CHATGLM大语言模型_GLM-6B安装部署_人工智能工作笔记0092
  • TCP_握手+挥手过程状态变化分析
  • 【MVP矩阵】投影矩阵推导与实现
  • 递归实现排列型枚举
  • redisson分布式锁
  • 2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序
  • 基于JavaWeb+SSM+Vue校园综合服务小程序系统的设计和实现
  • C语言每日一题(43)旋转链表
  • FWFT-FIFO的同步和异步verilog代码
  • Swoole的多进程模块
  • 22、DS1302实时时钟
  • YOLOv8 第Y7周 水果识别
  • NXP iMX8M Plus Qt5 双屏显示
  • 【开源】基于JAVA语言的校园电商物流云平台
  • 匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
  • Git多库多账号本地SSH连接配置方法
  • LINUX 嵌入式C编程--信号编程
  • IDEA在左下角显示当前代码所属的类名/方法名
  • vue---消息订阅与发布(pubsub)