sql server如何去除数据中的一些无用的空格

作者:wxl@ 时间:2024-01-18 02:22:22 

先有个一名为student的关系,其字段以及元组如图所示:

sql server如何去除数据中的一些无用的空格

为了保持数据的一致性,现在需要将sname的多余空格去除,以及将所有的snative字段的“族”去掉以保持数据的一致性。
在这之前,首先介绍几个常用的函数:

left&right&substring

使用格式:
left(str, n)
right(str, n)
substring(str, start, n)
str指的是字符串对象,n指的是字符个数,所以left和right的作用就明了了:从传入的字符串的左边(右边)第一个字符开始,选中n个字符,例如:

sql server如何去除数据中的一些无用的空格

这里选出的结果有的为空是因为原关系中sname有些开头有空格。
而substring()的用法更为灵活,它指定了从str的第几个元素开始,即start的作用,如从sname的第二个字符开始选择三个字符:

sql server如何去除数据中的一些无用的空格

有三个地方需要注意:

  • 在sql中,字符串的第一个字符不是0,而是1,拿python来说,它的字符串的第一个字符的索引为0,拿C语言的数组来说,第一个元素的索引为0,所以这个区别需要清楚。

  • 我们知道中文占用两个字节,可能在这里容易陷入一个误区:是不是sql选择字符串中的中文需要两个距离大小呢?比如选择第一个中文就是:substring(str, 1, 2)?看了上面的实例就知道了,这里储存字符串类似于数组,一个字符占用一个位置,所以这样才是正确的:substring(str, 1, 1)

  • 如果要访问字符串的最后一个字符如何操作呢?根据这三个函数有两种方法:right(str, 1)或者substring(str, len(str), 1)

lower&upper

使用方式:

select upper(sname) from student;
select lower(sname) from student;

这两个函数对于中文无影响

ltrim&rtrim

使用方式:

select ltrim(sname) from student;
select rtrim(sname) from student;

作用:去除属性值最左边(右边)的空格;

模糊查询(like的用法)

具体请参照我的这一篇博文:https://www.jb51.net/database/285790x8b.htm

首先解决简单的,将民族的多余的“族”去掉:

update student set
snative=substring(snative, 1, len(snative) - 1)
where right(snative, 1)='族';

sql server如何去除数据中的一些无用的空格

现在去除多余的空格:
大体上有两种方式,使用like和不适用like:

使用like :

首先去除左右两边的空格:
这里的% 可以代表任意字符,甚至可以为空。

-- 首先去除左右两边的空格
update  student set  
sname=ltrim(rtrim(sname)) where sname like ‘% %';

然后去除中间的空格:

update student set
sname=left(sname,1)+right(sname,1) where sname like ‘% %';

使用like '% %'其实实现了扫描每一个sname字符串是否包含空格。

不使用like:

首先去除两边的空格:

update student set sname=ltrim(rtrim(sname));

去除中间的空格:

update student set
sname = left(sname, 1) +
rtrim(ltrim(substring(sname, 2, len(sname) - 2))) +
right(sname, 1);

这种方法其实不通用,仅仅适合处理名字长度小于4的情况,其他情况的中间空格没法完全去除。它的思路就是先除去sname的左右空格,然后取中间部分,再次除去这部分的左右空格,然后和左右部分相接。

来源:https://blog.csdn.net/weixin_43141320/article/details/105363095

标签:sql,server,去除,空格
0
投稿

猜你喜欢

  • Python全栈之文件函数和函数参数

    2023-05-11 02:28:21
  • 基于Python实现视频自动下载软件

    2023-11-02 19:20:38
  • SQL Server游标的介绍与使用

    2024-01-21 10:02:25
  • python上传时包含boundary时的解决方法

    2021-03-28 08:28:54
  • 最新MySql8.27主从复制及SpringBoot项目中的读写分离实战教程

    2024-01-19 15:40:27
  • Python3.9最新版下载与安装图文教程详解(Windows系统为例)

    2023-12-13 20:26:51
  • ASP验证码的实现原理及源码

    2007-10-02 12:14:00
  • Python实现向服务器请求压缩数据及解压缩数据的方法示例

    2023-03-14 05:02:08
  • C#使用SqlServer作为日志数据库的设计与实现

    2024-01-17 05:10:12
  • 基于python使MUI登录页面的美化

    2023-10-23 16:28:03
  • Python中ROS和OpenCV结合处理图像问题

    2023-04-27 00:33:02
  • Web UI 设计(网页设计)命名规范

    2009-05-13 13:06:00
  • Python处理PPT文件的实用知识点总结

    2021-04-26 04:11:10
  • SQLServer WITH 的用法

    2009-07-09 18:54:00
  • Python 打印中文字符的三种方法

    2022-11-14 10:22:07
  • Python制作豆瓣图片的爬虫

    2021-11-24 05:53:05
  • pytorch sampler对数据进行采样的实现

    2023-02-09 20:05:40
  • Python编程把二叉树打印成多行代码

    2023-06-24 15:12:57
  • 一个ASP写的侧边菜单栏

    2010-05-27 12:22:00
  • 自学MySql内置函数知识点总结

    2024-01-23 11:19:04
  • asp之家 网络编程 m.aspxhome.com