sql 去掉 空格

 sql 空格变问号;sql 无法 去掉 空格 ;sql rtrim 失效;

方案一: sqlserver中  转码 替换

1、 知道是什么字符,如:空格或回车字符

https://blog.csdn.net/weixin_35750747/article/details/128871185

你可以使用 LTRIM 和 RTRIM 函数来清除字符串两端的空格和回车字符。 例如:

SELECT LTRIM(RTRIM(column_name)) AS trimmed_column
FROM table_name;
要清除所有空格和回车字符,你可以使用 REPLACE 函数,例如:

SELECT REPLACE(REPLACE(column_name, CHAR(13), ''), CHAR(32), '') AS trimmed_column
FROM table_name;
其中,CHAR(13) 表示回车字符,CHAR(32) 表示空格字符。

注意,上述方法仅适用于 SQL Server,如果你使用的是其他数据库管理系统,可能需要使用不同的函数。

2、不知道是什么字符,先转ASCII码,在替换 。

 https://www.cnblogs.com/TurboWay/p/5924445.html

SELECT  REPLACE(NAME,CHAR(ASCII(RIGHT(NAME,1))),'') FROM #temp  

right(name,1)表示:从右截取1个字符

EASCII码对照表

https://ascii.911cha.com/eascii.html

方案三:程序中 转码 替换

https://www.cnblogs.com/hao-1234-1234/p/13232281.html

byte[] space = new byte[] { 0xc2, 0xa0 };
string UTFSpace = Encoding.GetEncoding("UTF-8").GetString(space);
//替换为字符串空格
path.Replace(UTFSpace," ");

方案三:js中 替换

https://www.cnblogs.com/hao-1234-1234/p/11150348.html

function trim(str){ //删除左右两端的空格
 return str.replace(/(^\s*)|(\s*$)/g, "");
 }

方案四:SQLserver中 不知道是什么符号,逐个复制、粘贴、替换。(适用于穷举的种类不多的情况)

一、问题描述:

数据库中字段 nvarchar类型 存放数据如下:

 '3.3×10'

 原本以为右侧是一个空格,但是rtrim方法无效,发现右侧并不是空格,是一个特殊字符或特殊编码  ,只是看起来像空格。

二、解决方案:

update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 1
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 2
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 3
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 4

 

你可能有一个疑问 为什么重复执行相同的操作??

答:''  这个东西看起来相同,实际又各不相同。

你需要完整的复制出该列,然后全部选中看他们的后面凹凸状态 是否都为空了。

然后把那些没修改成功的空格单独复制出来再修改。

 例如 复制出放入单引号中观察  '2.0×10'  ,然后复制出它的特有的‘’,然后在执行一次修改。

修改前:

修改后:

 

三、失败经验:

1.trim方法

select ltrim(' 3.3×10') --去除左边的空格
select rtrim('3.3×10 ') --去除右边的空格
select ltrim(rtrim(' 3.3×10 ')) --去除首尾空格

结果有效。

但是真实的数据是这样的  '3.3×10'

select ltrim(rtrim('3.3×10')) --去除首尾空格  

结果无效。

 

posted @ 2018-03-01 17:20  hao_1234_1234  阅读(9369)  评论(6编辑  收藏  举报