如何解决Oracle SQL 删除尾随的新行
我正在 oracle sql 中创建一个 ssrs 表单,我需要在其中列出一个地址。新行必须保留在地址中,但是我找不到在地址末尾删除新行的方法。
我所拥有的示例:
10 Donkey Kong,London,XX1 1XX
new line
new line
我想要的例子:
10 Donkey Kong,XX1 1XX
Oracle 版本:11g - 11.2 版
我已经试过了:
-
trim(both chr(10) from (trim(both chr(13) from a.address))
- 没有任何区别 -
substr(a.address,1,length(translate(a.address,'d'||chr(10)||chr(13),'d')))
- 翻译检查整个地址中有多少空格,子字符串只返回地址的一部分,因为它切割的比它应该的多
谢谢
解决方法
找到答案:D
正则表达式来救援。
regexp_replace(a.address,'[' || chr(10) || chr(13) || ' ]+$','')
我仍然想知道为什么修剪不起作用。有什么想法吗?
,您可以在此处使用 REGEXP_REPLACE
和模式 \s+$
此处:
UPDATE yourTable
SET address = REGEXP_REPLACE(address,'\s+$','');
我可以推测您的修剪方法失败的几个原因。首先,也许不是每个列值都有 CRLF (CHR(10) || CHR(13)
)。相反,它可以有一个 Linux 行结尾,即 CHR(13)
。或者,最后可能存在其他类型的空白。我给出的答案更简单,应该涵盖所有边缘情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。