大半夜的不由的想说一句:世界上本没有坑,挖的人多了,于是就有了坑。但踩的坑多了,想问题的角度也就改变了,一切都很值。
坑王驾到背景:用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