Oracle 换行、回车详解 chr(10)、chr(13)

本文介绍了如何使用SQL中的CHR函数获取ASCII值对应的字符,并展示了如何去除文本中的空格、换行、回车等特殊字符,以及如何去除字符串两端和右边的空格。通过示例代码和执行效果,详细阐述了相关函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

相关函数
chr(n):返回 ascii 值对应的 字符
ascii(char):返回 字符 char 对应的 ascci 值

2 CHR(n) :返回 ascii值 对应的 字符

符号ASCII 码释义科普
\t9制表符
\r10New Line(换行)换到下一行(并不一定是 首行
\n13Carriage Return(回车)回到 首行
32空格符
with t_char as (
  select 'a' || 'b' sname from dual union all
  select 'a' || chr(9) || 'b' sname from dual union all
  select 'a' || chr(10) || 'b' sname from dual union all
  select 'a' || chr(13) || 'b' sname from dual union all
  select 'a' || chr(32) || 'b' sname from dual
)
select t.sname 源数据,
       lengthb(t.sname) 源长度长度,
       regexp_replace(t.sname, '[ab]', '|') 去除字符ab,
       ascii(regexp_replace(t.sname, '[ab]', '')) 特殊符号长度
  from t_char t;

执行效果:
在这里插入图片描述

3 扩展

3.1 去除文本中的 空格、换行、回车

with t_char as (
  select 'a' || 'b' sname from dual union all
  select 'a' || chr(9) || 'b' sname from dual union all
  select 'a' || chr(10) || 'b' sname from dual union all
  select 'a' || chr(13) || 'b' sname from dual union all
  select 'a' || chr(32) || 'b' sname from dual
)
select t.sname 源数据,
       lengthb(t.sname) 源长度长度,
       replace(replace(replace(replace(t.sname, chr(9), ''), chr(10), ''),
                       chr(13),
                       ''),
               chr(32),
               '') 去除特殊符号,
       lengthb(replace(replace(replace(replace(t.sname, chr(9), ''),
                                       chr(10),
                                       ''),
                               chr(13),
                               ''),
                       chr(32),
                       '')) 去除特殊符号后长度
  from t_char t;

执行截图:
在这里插入图片描述

3.2 去除空格

with t_char as (
  select ' ab' sname from dual union all
  select ' ab ' sname from dual union all
  select 'ab ' sname from dual
)
select t.sname 源数据,
       '|' || trim(t.sname) || '|' 去除两端空格,
       '|' || rtrim(t.sname) || '|' 去除右边空格,
       '|' || ltrim(t.sname) || '|' 去除左边空格
  from t_char t;

执行截图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值