SQLServer字段替换隐藏字符CHAR(0),踩坑后Get新技能

  大半夜的不由的想说一句:世界上本没有坑,挖的人多了,于是就有了坑。但踩的坑多了,想问题的角度也就改变了,一切都很值。

  坑王驾到背景:用Kettle导SQLServer中的十几张表到PostgreSQL,导某个表的时候发现有些字段肉眼看上去是空白的,但死活都导不进去,

用LEN()函数发现竟然有长度,职业性的加上LTRIM()和RTRIM(),匪夷所思的事情出现了,没有效果,长度和没加之前一样。我勒个去!

然后就各种试,问度娘,问Google,发现CHAR(0)表示空字元,是个控制字符,它的存在让本该正常显示的字符串隐藏不显示了,

厉害了Word哥,直接REPLACE()替换掉。

SELECT 
GuessColumn AS [隐藏字段],
LEN(GuessColumn) AS [隐藏字段长度],
LEFT(GuessColumn,1) AS [隐藏字段左边一位不可见],
RIGHT(GuessColumn,1) AS [隐藏字段右边一位可见],
REPLACE(GuessColumn,CHAR(0),'替换不可见字符') AS [替换不可见字符后]
FROM GuessTable  where SID = 96995988 

  

原文地址:https://www.cnblogs.com/binguo2008/p/7451141.html