首页 > 数据库 >Hivesql字符截取函数错用

Hivesql字符截取函数错用

时间:2023-11-05 10:23:10浏览次数:27  
标签:哈尼族 字符 xxxx instr Hivesql 截取 矫族 红河

1.背景    

    最近在使用instr进行字符截取时出现了字符截断的情况,案例是需要获取出"红河哈尼族矫族自治州(xxxx(红河)有限公司)"里面的"xxxx(红河)有限公司"内容,结果获取到的内容是"xxxx(红河",该语句针对只有一对括号时没有问题,当出现这种有两个括号时就会出现截断的问题,原始语句如下:

substring(cityname,instr(cityname,'(')+1,instr(cityname,')')-(instr(cityname,'(')+1))

2.实施

    尝试修改,想法是截取从第一个括号出现到倒数第二个字符是所需的内容,结果获取到的字符内容是"xxxx(红河)有限公司)",多了一个括号,语句如下:

substring('红河哈尼族矫族自治州(xxxx(红河)有限公司)',instr('红河哈尼族矫族自治州(xxxx(红河)有限公司)','(')+1,length('红河哈尼族矫族自治州(xxxx(红河)有限公司)')-1)

    相信熟悉substring会轻易的发现这里对substring的参数理解有误差,第一个参数是原始字符串,第二参数是要截取的起始下标,第三个参数是要截取的长度,而不是要截取的结束下标。所以改造一下就是可以的,语句可以这样写。

substring('红河哈尼族矫族自治州(xxxx(红河)有限公司)',instr('红河哈尼族矫族自治州(xxxx(红河)有限公司)','(')+1,length('红河哈尼族矫族自治州(xxxx(红河)有限公司)')-instr('红河哈尼族矫族自治州(xxxx(红河)有限公司)','(')-1)

3.总结

    substr和substring用法一样,在截取字符时还可以使用正则表达式,正则表达式内容可以这样写。

regexp_extract('红河哈尼族矫族自治州(xxxx(红河)有限公司)', '\\((.*)\\)', 1)

 

标签:哈尼族,字符,xxxx,instr,Hivesql,截取,矫族,红河
From: https://www.cnblogs.com/beststrive/p/17810268.html

相关文章

  • 字符串哈希
    算法原理:将一个字符串看成是一个P进制的数字。代码模板:def__init__(self,s):n=len(s)self.BASE=BASE=131#进制131,131313self.MOD=MOD=10**13+7#10**9+7,998244353,10**13+7self.h=h=[0]*(n+1)......
  • 编写代码,演示多个字符从两端移动,向中间汇聚
    #include<stdio.h>#include<string.h>   //定义strlen。#include<windows.h>   //定义sleep#include<stdlib.h>   //定义systemintmain(){  chararr1[]="welcometobit!!!!!!";   //为字符串。  chararr2[]="######......
  • 字符串的属性与方法
    字符串的属性与方法属性;length长度 字符串是个伪数组//vartemp=newString('hello');//for(vari=0;i<temp.length;i++){//console.log(temp[i]);//}    //varstr='hello';    //console.log(str.le......
  • 字符串类型
    1.B-BeautifulStrings(atcoder.jp)代码:1#include<bits/stdc++.h>2usingnamespacestd;34intn;5intcnt[500];6strings;7intmian(){8cin>>s;9n=s.size();10s=''+s;1112for(inti=1;i<......
  • Excel统计某字符或关键字出现的次数
    原始数据区域为A1:A5,每个单元格中包含不同或相同的文本,要根据需求求某个字符或关键字在各单元格文本中出现的次数总和。首先,求“北京”出现的次数(整个单元格内容等于“北京”)。我们输入公式:=COUNTIF(A1:A5,”北京”)结果返回1,因为源数据中只有A1单元格整个文本内容是“北京”。然......
  • MySQL 获取MySQL列中字符串出现的次数
    使用SUM()和LIKE语句计算字符串出现次数首先,我们可以使用SUM()函数和LIKE语句计算特定字符串在某一列中出现的次数。具体实现方法如下:SELECTSUM(CASEWHENcolumn_nameLIKE'%search_string%'THEN1ELSE0END)assearch_countFROMtable_name;SQLCopy其中,column_name为需要......
  • Mysql查询字符串中某个字符串出现的次数
    目录1.查单个字符出现的次数2.查多个字符出现的次数3.函数讲解1.查单个字符出现的次数比如我想查howdoyoudo字符串当中出现d的次数:第一眼看上去有点懵,首先mysql并没有直接计算出现字符次数的函数,所以才使用了下面这种方式,其实就是将出现的字符串给替换为了空。然后让原数据减去......
  • MATLAB-字符串处理
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 字符串匹配算法:KMP
    Knuth–Morris–Pratt(KMP)是由三位数学家克努斯、莫里斯、普拉特同时发现,所有人们用三个人的名字来称呼这种算法,KMP是一种改进的字符串匹配算法,它的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。它的时间复杂度是O(m+n)字符匹配:给你两个字符......
  • 教3妹学编程-算法题】2914. 使二进制字符串变美丽的最少修改次数
    3妹:呜呜,烦死了,脸上长了一个痘2哥 :不要在意这些细节嘛,不用管它,过两天自然不就好了。3妹:切,你不懂,影响这两天的心情哇。2哥 :我看你是不急着找工作了啊,工作那么辛苦,哪还有时间想这些啊。3妹:说到找工作,我又要去刷题了。2哥:我给你出一道关于美丽的题吧,让你的心情美丽美丽~ 1题目......