当前位置: 首页 > 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/a/161473.html

相关文章:

  • OCR识别铁路电子客票
  • ubuntu中apt-get的默认安装路径。安装、卸载以及查看的方法总结
  • 【图像压缩感知】论文阅读:Self-supervised Scalable Deep Compressed Sensing
  • 《MYSQL45讲》误删数据怎么办
  • 不对称信息
  • 阿里巴巴通义灵码推出Lingma SWE-GPT:开源模型的性能新标杆
  • /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.两数之和