替换 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。
我正在尝试替换我的专栏中的 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。