国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

sql?server如何去除數據中的一些無用的空格

瀏覽:36日期:2023-09-29 21:02:28
目錄left&right&substringlower&upperltrim&rtrim模糊查詢(like的用法)使用like :不使用like:

先有個一名為student的關系,其字段以及元組如圖所示:

為了保持數據的一致性,現在需要將sname的多余空格去除,以及將所有的snative字段的“族”去掉以保持數據的一致性。在這之前,首先介紹幾個常用的函數:

left&right&substring

使用格式:left(str, n)right(str, n)substring(str, start, n)str指的是字符串對象,n指的是字符個數,所以left和right的作用就明了了:從傳入的字符串的左邊(右邊)第一個字符開始,選中n個字符,例如:

這里選出的結果有的為空是因為原關系中sname有些開頭有空格。而substring()的用法更為靈活,它指定了從str的第幾個元素開始,即start的作用,如從sname的第二個字符開始選擇三個字符:

有三個地方需要注意:

在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)='族';

現在去除多余的空格:大體上有兩種方式,使用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的左右空格,然后取中間部分,再次除去這部分的左右空格,然后和左右部分相接。

到此這篇關于sql server去除數據中的一些無用的空格的文章就介紹到這了,更多相關sql server去除數據空格內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MsSQL 數據庫
主站蜘蛛池模板: 门头沟区| 沙坪坝区| 自治县| 涿州市| 万年县| 沁源县| 玛多县| 苍梧县| 永福县| 逊克县| 尉氏县| 横峰县| 木兰县| 富裕县| 山丹县| 沁源县| 收藏| 重庆市| 丽水市| 长武县| 德江县| 浏阳市| 宾川县| 新民市| 望江县| 万全县| 清水河县| 临桂县| 广东省| 确山县| 浠水县| 定远县| 台东县| 罗甸县| 新干县| 久治县| 裕民县| 鸡泽县| 榆林市| 乌兰察布市| 河源市|