如题所述
一、表中字符串带空格的原因
1,空格就是空格。
2,数据是从别的系统、文件抓取,导入到SQLSERVER中的表,由于源数据存在特殊字符显示空格。
二、解决方法
第一种情况,去空格的处理的比较简单,Replace(column,‘ ‘,‘‘) 就可以解决。
第二种情况,解决方法就比较麻烦点:需要先查出相应的ASCII码,再用Replace(column,char(ascii码),‘‘)解决,以下举个栗子:
CREATE TABLE #temp(NAME NVARCHAR(50))INSERT INTO #temp SELECT ‘明天就是国庆了‘+CHAR(10) --换行符SELECT * FROM #temp --末尾显示为空格SELECT REPLACE(NAME,‘ ‘,‘‘) FROM #temp --去不掉这个空格SELECT REPLACE(NAME,CHAR(10),‘‘) FROM #temp --去掉空格SELECT REPLACE(NAME,CHAR(ASCII(RIGHT(NAME,1))),‘‘) FROM #temp --在不知道是最后一位是什么字符的情况下,先转ASCII码,在替换DROP TABLE #temp----下面是查询结果:--‘明天就是国庆了 ‘--‘明天就是国庆了 ‘--‘明天就是国庆了‘--‘明天就是国庆了‘
SQL字符串去空格解决方法
1,空格就是空格。
2,数据是从别的系统、文件抓取,导入到SQLSERVER中的表,由于源数据存在特殊字符显示空格。
二、解决方法
第一种情况,去空格的处理的比较简单,Replace(column,‘ ‘,‘‘) 就可以解决。
第二种情况,解决方法就比较麻烦点:需要先查出相应的ASCII码,再用Replace(column,char(ascii码),‘‘)解决,以下举个栗子:
CREATE TABLE #temp(NAME NVARCHAR(50))INSERT INTO #temp SELECT ‘明天就是国庆了‘+CHAR(10) --换行符SELECT * FROM #temp --末尾显示为空格SELECT REPLACE(NAME,‘ ‘,‘‘) FROM #temp --去不掉这个空格SELECT REPLACE(NAME,CHAR(10),‘‘) FROM #temp --去掉空格SELECT REPLACE(NAME,CHAR(ASCII(RIGHT(NAME,1))),‘‘) FROM #temp --在不知道是最后一位是什么字符的情况下,先转ASCII码,在替换DROP TABLE #temp----下面是查询结果:--‘明天就是国庆了 ‘--‘明天就是国庆了 ‘--‘明天就是国庆了‘--‘明天就是国庆了‘
SQL字符串去空格解决方法
温馨提示:答案为网友推荐,仅供参考