InterBase 2007中如何替换CR/LF换行符为空字符串?
在InterBase 2007中替换字段内的CR/LF换行符
InterBase的字符串函数语法与SQL Server存在差异,需要调整语句适配其规则:
1. 查找包含换行符的记录
使用ASCII_CHAR()生成控制字符,字符串连接用||替代+:
SELECT * FROM data WHERE BIRTH_PLACE LIKE '%' || ASCII_CHAR(10) || '%' OR BIRTH_PLACE LIKE '%' || ASCII_CHAR(13) || '%'
2. 替换字段中的换行符
嵌套REPLACE函数,结合ASCII_CHAR()指定CR(13)和LF(10)进行替换:
UPDATE data SET BIRTH_PLACE = REPLACE(REPLACE(BIRTH_PLACE, ASCII_CHAR(10), ''), ASCII_CHAR(13), '') WHERE BIRTH_PLACE LIKE '%' || ASCII_CHAR(10) || '%' OR BIRTH_PLACE LIKE '%' || ASCII_CHAR(13) || '%'
可选写法
部分InterBase版本支持CHR()作为ASCII_CHAR()的别名,也可以用以下语句实现相同效果:
-- 查找 SELECT * FROM data WHERE BIRTH_PLACE LIKE '%' || CHR(10) || '%' OR BIRTH_PLACE LIKE '%' || CHR(13) || '%' -- 更新 UPDATE data SET BIRTH_PLACE = REPLACE(REPLACE(BIRTH_PLACE, CHR(10), ''), CHR(13), '') WHERE BIRTH_PLACE LIKE '%' || CHR(10) || '%' OR BIRTH_PLACE LIKE '%' || CHR(13) || '%'
内容的提问来源于stack exchange,提问作者Habiburnik
相关产品推荐
相关产品推荐

