替换Firebird中的空白



我正在尝试替换我的列中的空格。我试着:

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中引入的二进制字符串字面值。

相关内容

  • 没有找到相关文章

最新更新