业务需求:使用hive从表中查询dataforjy字段的记录后5位包含#的有哪些?

方法一:使用模糊查询like,逐一匹配

Like表示模糊查询(是否包含),like后面的字符串不是正则表达式,而是通配符。像mysql中的”like”,%代表任意数量个字符,_代表一个填充字符。但是建议使用高级函数”instr”效率更高。

Select dataforjy from fdm_dm.dmp_plsadm_tradeinfo_m_20180227_mix

where dataforjy like '%#____'

or dataforjy like '%_#___'

or dataforjy like '%__#__'

or dataforjy like '%___#_'

or dataforjy like '%____#'

方法二:(通过截取后5位,使用relike查询包含#的记录)

Rlike功能和like一致,只是后面内容是正则表达式,正则的写法与java一样。需要转义,例如’\m’需要使用’\\m’。如果like想用正则表达式,则需要替换用rlike.

Select dataforjy

from fdm_dm.dmp_plsadm_tradeinfo_m_20180227_mix

where substr(dataforjy,length(dataforjy)-4) rlike '#'

注,substr后5位的取法,是dataforjy-4,而不是dataforjy-5。其实dataforjylike ‘%#%’和dataforjyrlike ‘#’效果一样,都是对含#号的匹配。但是上面两种如果dataforjy字段中存在长度小于5的字段,则统计结果都会不准。

RLIKE的其他使用,比如:

hive> select 1 from lxw_dual where 'footbar’ rlike'^f.*r$’;

> 1

注意:判断一个字符串是否全为数字:

hive> select 1 from lxw_dual where '123456' rlike'^\\d+$';

> 1

hive> select 1 from lxw_dual where '123456aa' rlike'^\\d+$';

Not like表示不包含的匹配,和like相反,但是用法不是Anot like B,而是not A like B .

hive> select not 'abcde' like '%c%e' from fdm_dm.dmp_plsadm_tradeinfo_m_20180227_mix

hive > false

同理NOT RLIKE 的使用,也是NOT A RLIKEB

select PAYSTAT24MONTH

from fdm_dm.dmp_plsadm_tradeinfo_m_20180227_mix

where not substr(PAYSTAT24MONTH,length(PAYSTAT24MONTH)-4) rlike '#'

mysql中like与rlike_Hive中rlike,like,notlike区别及使用相关推荐

  1. mysql替换首字母_MySQL中使用replace、regexp进行正则表达式替换的用法分析

    这篇文章主要介绍了MySQL中使用replace.regexp进行正则表达式替换的用法,结合具体实例形式分析了replace.regexp正则替换的使用技巧与相关注意事项,需要的朋友可以参考下 本文实 ...

  2. jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片

    当前位置:我的异常网» Java Web开发 » 请教JSP中怎么向MySql中存入和取出图片 请教JSP中怎么向MySql中存入和取出图片 www.myexceptions.net  网友分享于:2 ...

  3. mysql隐藏密码_MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?, ...

  4. coba mysql_在Android Studio中将数据从MySQL数据库显示到TextView中-问答-阿里云开发者社区-阿里云...

    我是新手,Android Studio我想将数据库(我使用MySQL)中的数据显示到中TextView.我也使用Button和RadioButton.单击按钮后,数据将显示在中TextView.这是我 ...

  5. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

    2019独角兽企业重金招聘Python工程师标准>>> 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case in ...

  6. hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别

    概述 Mysql数据库replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与i ...

  7. mysql数据库管理文件_数据库管理中文件的使用教程

    摘要:这篇MySQL栏目下的"数据库管理中文件的使用教程",介绍的技术点是"数据库管理.使用教程.数据库.的使用.文件.管理",希望对大家开发技术学习和问题解决 ...

  8. mysql replace报错_Mysql中replace与replace into的用法讲解

    Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert ...

  9. xp 安装mysql数据库_Windows XP系统中安装MySQL5.5.28数据库图文教程

    Windows XP系统中安装MySQL5.5.28数据库图文教程 2014-07-13 16:35来源:中国存储网 导读:MySQL数据库的安装一共分为两个部分:数据库的安装和数据库的配置.一.My ...

  10. pbp 读取 mysql数据_SqlAlchemy 中操作数据库时session和scoped_session的区别(源码分析)...

    原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalch ...

最新文章

  1. 挖掘协同的力量 大OA前景广阔
  2. TPL Dataflow组件应对高并发,低延迟要求
  3. 带有Prometheus的Spring Boot和测微表第6部分:保护指标
  4. python 华泰证券 客户端_华泰证券网上交易系统(高级版)下载 v8.13官方版下载
  5. JVM初学之JVM的运行时数据区
  6. 第6章—渲染web视图—使用Thymeleaf
  7. java webcms系统源码_java轻量级的CMS系统-天梯
  8. Mybatis之分表设计与分表插入
  9. [转]myeclipse 8.5最新注册码(过期时间到2016年)
  10. 【优化预测】基于matlab遗传算法优化GRNN数据回归拟合【含Matlab源码 1401期】
  11. c语言万年历查询程序代码,C语言实现万年历程序
  12. 基于Docker的PaaS平台建设实践
  13. Usage of API documented as @since 1.8+ less... (Ctrl+F1) Inspection info: This inspection finds all
  14. 云网融合驱动数据中心技术聚变
  15. 如何快速学会一项新技能?
  16. linux系统下的动态壁纸,桌面应用|动态壁纸给linux发行版添加活力背景
  17. php转字,PHP汉字拼音转换和公历农历转换
  18. MySQL给查询结果添加序号列的书写格式
  19. [置顶]       VMWare不能安装64位操作系统原因探析
  20. Flutter v1,大厂面试必问

热门文章

  1. php微信公众号样式模板下载,PHP微信公众平台自定义菜单
  2. 【Mysql 第11章_数据处理之增删改】
  3. 【POWER BI商业数据分析】销售目标分解
  4. python画钢铁侠标志_钢铁侠历代战衣mark1—mark47全揭秘(四)
  5. Data truncation: Data too long for column ‘xxx‘ at row 1
  6. JavaScript格式化字符串为指定长度
  7. CA、公钥、私钥的基本概念
  8. Java第十一章总结
  9. 紫罗兰永恒花园rust简谱_Letter《紫罗兰永恒花园》4.5话ED 简谱
  10. 紫罗兰永恒花园女性CG模型作品