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

clickhouse使用extract提取分号之前,之后,中间的内容

Area:‘安徽;宣城;宣州’,要提取分号之前,两个分号之前,最后一个分号之后的内容作为省市区
这是最后得到的正确的结果,感谢chatgpt
刚开始本来想使用splitByString

-- 宣城
select splitByString(';','安徽;宣城;宣州')[2];

可以直接指定分隔符拆分成字符串数组,但是我的这个表的这个字段设计是Nullable类型的,没法使用这个函数使用这个函数会报错,就算使用where过滤也是不行的
select splitByString(‘;’,Area)[2] from (select Area from table where Area is not null and Area != ‘’);

还有positionUTF8,substringUTF8也尝试过了,也不能对Nullable类型的字段使用
select  Area,positionUTF8(Area,';',1),substringUTF8(Area,1,length(Area)-positionUTF8(Area,';',1))
from table where BillNo = '76AJNX1ZE334FD2';
最后只能用extract函数了,通过正则表达式进行提取。-- 1,获取省
SELECTextract('安徽;宣城;宣州', '([^;]+)') AS extracted_text,extractAll('安徽;宣城;宣州', '([^;]+)')[3] AS extracted_text2;SELECTArea,extract(Area, '([^;]+)') from  table where BillNo = '76AJNX1ZE314FD1';
-- 最简单的方式是使用extractAll('安徽;宣城;宣州', '([^;]+)')根据分号拆分成数组,但是由于clickhouse限制无法对Nullable类型的字符串使用这个函数,
-- 等同于splitByString函数,select splitByString(';','安徽;宣城;宣州')[2];
-- SELECT
--     extractAll(Area, '([^;]+)')[3] AS extracted_text2 from table where BillNo = '76AJNX1ZE334FD2';
-- 2,获取市
SELECTextract('安徽;宣城;宣州', ';([^;]+);') AS extracted_text;-- 3,获取区
SELECT extract('安徽;宣城;宣州', ';([^;]+)$') AS extracted_text;
http://www.lryc.cn/news/447672.html

相关文章:

  • Unity3D Compute Shader同步详解
  • 3D模型在UI设计中应用越来越多,给UI带来了什么?
  • 前端框架的选择与考量:一场技术的盛宴
  • 第五部分:7---信号的捕捉
  • HarmonyOS鸿蒙开发实战( Beta5.0)页面加载效果实现详解实践案例
  • 计算机网络中的VLAN详解
  • Nacos学习
  • 后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0926)
  • 验收测试:从需求到交付的全程把控!
  • 第十七节 鼠标的操作与相应
  • 深圳·2025胶粘剂展会 BOND第六届胶展
  • 什么是网络安全自动化以及优势与挑战
  • java中的ArrayList和LinkedList的底层剖析
  • 占领矩阵-第15届蓝桥省赛Scratch中级组真题第5题
  • [论文笔记] Chain-of-Thought Reasoning without Prompting
  • C++八股进阶
  • 渗透测试--文件上传常用绕过方式
  • 音视频生态下Unity3D和虚幻引擎(Unreal Engine)的区别
  • 搭建基于H.265编码的RTSP推流云服务器
  • C++20 std::format
  • Python基础知识 (九)os模块、异常、异常的传递性
  • 鸿蒙手势交互(三:组合手势)
  • 【计算机方向】中科院二区TOP神刊!国人发文友好,刊文量高,录用容易!
  • Stable Diffusion 保姆级教程
  • 踩坑记录:adb修改settings数据库ContentObserver无回调
  • JAVA毕业设计183—基于Java+Springboot+vue的旅游小程序系统(源代码+数据库)
  • [大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26
  • WiFi无线连接管理安卓设备工具:WiFiADB
  • Django项目配置日志
  • 在IntelliJ IDEA中设置文件自动定位