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

hql面试题之字符串使用split分割,并选择其中的一部分字段的问题

版本:20231109

1.题目:

有两张表,a表有id和abstringr两个字段,b表也有id和bstr两个字段,具体如下
A表:

1abc,bcd,cdf
2123,456,789

B表:

1acddef
2123456

在a表的abstring字段中用‘,’分割,并取出前两个字段,然后合并,并且与b表的bstr进行对比,最后求出字段不相同的字段。

1.首先测试建立A表和B表

create table if not exists split_test(
id int comment 'id',
str string comment '字符串'
)comment '逗号字符串分割练习表A'
create table if not exists spl_test(
id int comment 'id',
str2 string comment '字符串'
)comment '逗号字符串分割练习表B'

2.插入数据

insert into split_test values(1,'abc,bcd,cdf'),(2,'123,456,789')
insert into spl_test values(1,'acddef'),(2,'123456')

2.思路:使用split函数

语法: split(string str, string pat)
返回值: array
说明: 按照pat字符串分割str,会返回分割后的字符串数组
这里我们用’,'来分割字符串产生一个字符串数组,在使用concat来关联
在这里插入图片描述

select id,concat(split(str,',')[0],split(str,',')[1]) from split_test;

在这里插入图片描述

最终结果再将A表和B表join做关联

select *
from
(select 
    id,
    concat(split(str,',')[0],split(str,',')[1]) as str_1
    from split_test) a
left join 
    spl_test b
on a.id= b.id and a.str_1 <> b.str2;

http://www.kler.cn/news/161473.html

相关文章:

  • /usr/bin/ld: cannot find -ltinfo 的解决方法
  • 第二十一章——网络通信
  • 使用Jython将Python代码转换为Java可执行文件
  • 手把手将Visual Studio Code变成Python开发神器
  • RabbitMQ 的七种消息传递形式
  • 结构体对齐和补齐
  • HarmonyOS开发(十):通知和提醒
  • 洛谷P1044 [NOIP2003 普及组] 栈 递归方法
  • JVM中 Minor GC 和 Full GC 的区别
  • React中的空标签与Fragment标签的区别
  • 【数据库设计和SQL基础语法】--表的创建与操作--插入、更新和删除数据
  • Nginx(配置SLL证书)
  • 重生奇迹mu武器镶嵌顺序
  • MySQL学习day05
  • C++ STL容器与常用库函数
  • 一则广告,一个故事,这就我选择学习计算机专业的两个原因
  • 中国证券交易所有哪些
  • vs2022 winform 使用LiveCharts.Wpf控件出现黑框 去除方法
  • zabbix分布式监控平台从IPV4切换到IPV6之监控主机切换
  • 【LeeCode】1.两数之和
  • webpack配置scss loader
  • 【数据库】基于时间戳的并发访问控制,乐观模式,时间戳替代形式及存在的问题,与封锁模式的对比
  • 单片机学习13——串口通信
  • 在 Windows 桌面的redis中远程连接到 VMware 中运行的 Linux 上的 Redis
  • simulinkDFIG风电场风机并网渗透率系统稳定性小信号特征值分析,特征根轨迹分析。四机两区域模型系统
  • 基于B/S架构的医院一体化电子病历编辑器源码
  • Docker的数据卷
  • 使用ApexSQLLog工具恢复数据库
  • 【C语言快速学习基础篇】之一基础类型、进制转换、数据位宽
  • uni-app 微信小程序之好看的ui登录页面(二)