SQL中concat和substr组合运用

背景

最近客户要我给一个脚本说查数据,说是要截取sql表中某一个字段的前5个数值进行查找。
刚开始我以为很简单就接了下来开始想,想了之后发现并没有这么简单(自己太菜了),就去问朋友(大数据开发)。
给了我这两个函数(concat和substr)让我自己去玩,但是客户一直再催没办法只能找我们自己的开发写脚本。

Ten minutes later…
真的就10分钟,开发发来了脚本,果然就是用的这两个函数,还得是大佬。

脚本有放在最后一章进行分析

concat介绍

concat()可以理解为就是拼接函数,用于将多个字符串连接起来,形成一个单一的字符串

 concat(id, name, work_date)
 这个函数会把三个字段的数值拼接到一个字段

更详细的页面学习:
链接: link

substr介绍

substr()此函数就相当于一个截取操作

substr(string ,pos,len)
string:指定字符串
pos:规定字符串从何处开始
len:要截取字符串的长度

更详情的学习:
链接: link

最后SQL语句分析

最终阉割版的脚本展示

replace into student (select name,concat(substr(A.stuid,1,5),'0'),A.sex  from student A,score B WHERE substr(A.stuid,6,1)='1' and concat(substr(A.stuid,1,5),'0')=B.stuid);

replace 替换语句

concat(substr(A.stuid,1,5),‘0’)
截取(substr函数)表A(student表)中stuid字段的前1-5个数值,再与‘0’进行拼接成行的字段。
本来学号为665511,现在就会变成了665510

Student表中由于某种原因,stuid字段里面的数值最后一位变成了1,Score表中有以‘0’结尾的正确学号,这脚本的目的就是把Student表中的错误数据替换。

瑞思拜

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论 1

打赏作者

我真的不会做啊

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值