我正在尝试替换我的列中的空格。我试着:
update x set y= REPLACE(y, ' ' ,'')
update x set y= REPLACE(y, CHAR(160) ,'') --SQL ERROR CHAR TOKEN UNKNOWN
update x set y= REPLACE(y, 'u00A0' ,'')
update x set y= REPLACE(y, 'xA0' ,'')
update x set y= REPLACE(y, 'xC2' ,'')
但是他们都不工作。列为CHAR CHARSET SET WIN 1250
1 234
和应该是
1234
对于这种特殊情况-正如在评论中讨论的那样-您需要使用ASCII_CHAR
函数:
REPLACE(y, ASCII_CHAR(160), '')
或者,当使用Firebird 2.5及更高版本时
REPLACE(y, x'A0', '')
最后三个选项不起作用,因为Firebird没有这样的字符转义。最接近的方法是使用Firebird 2.5中引入的二进制字符串字面值。