替换 Firebird 中的空格

Replace whitespace in Firebird

我正在尝试替换我的专栏中的 space。我试过了:

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' ,'')

但其中 none 个正在运行。该列是 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 中引入的 binary string literal