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')) --去除首尾空格
结果无效。