我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle字符串中包含数字、特殊符号的解决方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle字符串中包含数字、特殊符号的解决方法是什么

本篇文章为大家展示了Oracle字符串中包含数字、特殊符号的解决方法是什么,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

问题描述:

  某小区,需要按照小区、楼栋、单元号、房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果,

1号楼之后应该是2号楼,但是查询结果却是10号楼 。

Oracle字符串中包含数字、特殊符号的解决方法是什么

  尝试解决

  使用正则表达式替换

Oracle字符串中包含数字、特殊符号的解决方法是什么

  结果:

  虽然楼栋号排序正常了,但是会发现房间号排序出现了混乱。  继续想办法

  终极办法:

  使用translate函数

Oracle字符串中包含数字、特殊符号的解决方法是什么

可以发现,结果正常显示 。

以下附上translate使用方法

一、语法:

TRANSLATE(string,from_str,to_str)

二、目的

返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。

三、允许使用的位置

过程性语句和SQL语句。

四、示例

Sql代码

SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual; 
 TRANSLATE ( 
 -------------- 
 123456ghij 
 SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual; 
 TRANSL 
 ---------- 
 123456

语法:TRANSLATE(expr,from,to)

expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。

举例:

select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)
select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

因此:结果依次为:@#c##@@def 和@#c##@@ef

语法:TRANSLATE(expr,from,to)

expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。

举例:

select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)
select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

因此:结果依次为:@#c##@@def 和@#c##@@ef

示例如下:

示例一:将数字转换为9,其他的大写字母转换为X,然后返回。

SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX')                       "License"FROM DUAL

示例二:将数字保留,将其他的大写字母移除。

SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') "Translate example"FROM DUAL

罗勇补充示例如下:

示例三:示例证明是按照字符来处理,不是按照字节来处理,如果to_string的字符数比from_string多的话,多出的字符数似乎没有什么用处,也不会引发异常。

SELECT TRANSLATE('我是中国人,我爱中国', '中国', 'China') "Translate example"
FROM DUAL

示例四:下面的示例证明,如果from_string的字符数大于to_string,那么多出的字符会被移除,也就是ina三个字符会从char参数中移除,当然区分大小写啦。

SELECT TRANSLATE('I am Chinese, I love China', 'China', '中国') "Translate example"
FROM DUAL

示例五:以下示例证明,如果第二个参数为空字符串,整个返回null。

SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'') "License"
FROM DUAL

示例六:在银行转帐时经常看见账户人只显示姓名的最后一个字,其余的用星号代替,我就用translate来做个类似的东西吧。

SELECT TRANSLATE('中国人',
substr('中国人',1,length('中国人') - 1),
rpad('*',length('中国人'),'*')) "License"
  FROM DUAL

如果大家遇到此类问题,就可以按照以上的方法尝试一下。

上述内容就是Oracle字符串中包含数字、特殊符号的解决方法是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle字符串中包含数字、特殊符号的解决方法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux中的特殊字符及含义是什么

这篇文章主要讲解了“linux中的特殊字符及含义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中的特殊字符及含义是什么”吧!linux的特殊字符
2023-04-20

java中判断字符串中是否包含某个特定字符串的方法有哪些

判断一个字符串是否包含某个子串的n种方法:1、startsWith()方法2、contains()方法3、indexOf方法startsWith()方法这个方法有两个变体,用于检测字符串是否以指定的前缀开始。此方法定义的语法如下:public boolean
java中判断字符串中是否包含某个特定字符串的方法有哪些
2020-12-27

java判断包含字符串的方法是什么

Java中判断是否包含某个字符串的方法可以通过使用String类中的contains()方法来实现。contains()方法会返回一个boolean值,表示字符串中是否包含指定的子字符串。例如:String str = "Hello,
java判断包含字符串的方法是什么
2024-03-01

Python判断字符串是否包含特定子字符串的多种方法(7种方法)

我们经常会遇这样一个需求判断字符串中是否包含某个关键词,也就是特定的子字符串,接下来通过本文给大家分享Python判断字符串是否包含特定子字符串的多种方法(7种方法),需要的朋友可以参考下
2023-03-11

java中判断一个字符串是否包含某个字符的方法

一、contains方法1:描述java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列。2:声明public boolean contains(CharSequence s)在线相关视频学习推荐:ja
java中判断一个字符串是否包含某个字符的方法
2020-03-28

javascript判断字符串中是否包含某个字符串的方法有哪些

小编给大家分享一下javascript判断字符串中是否包含某个字符串的方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!javascript判断字符串中是否包含某个字符串的方法:1、使用【indexOf()】方法可返
2023-06-14

java中判断字符串是否包含中文汉字或字符的方法有哪些

判断中文字符(包括中文汉字和中文符号)(1)使用中文的编码区间来判断(推荐,效率高)String str1 = "T恤;https://blog.csdn.net/vpqtxzmzezeqjj9977";//中文汉字String str2 = ";https:
java中判断字符串是否包含中文汉字或字符的方法有哪些
2016-06-21

oracle中字符转数字的方法是什么

在Oracle数据库中,可以使用以下方法将字符转换为数字:1. 使用TO_NUMBER函数:TO_NUMBER函数将一个字符串参数转换为对应的数字类型。语法如下:```sqlTO_NUMBER(string, [format_mask],
2023-08-29

java特殊字符转义处理的方法是什么

在Java中,可以使用反斜杠(\)来转义特殊字符。以下是一些常见的特殊字符转义序列:- \n:换行- \t:制表符- \r:回车- \b:退格- \f:换页- \’:单引号- \”:双引号- \\:反斜杠例如,要在字符串中插入一个换行符,可
2023-08-11

go字符串转数字的方法是什么

将字符串转换为数字的方法有以下几种:1. 使用strconv包中的ParseInt或ParseFloat函数:strconv包提供了将字符串转换为整数或浮点数的函数。例如,使用strconv.ParseInt函数将字符串转换为整数:```g
2023-08-09

golang字符串转数字的方法是什么

在Go语言中,可以使用strconv包中的函数来实现字符串到数字的转换。strconv包提供了以下几个函数来将字符串转换为数字:- strconv.Atoi(s string) (int, error):将字符串转换为int类型。- str
2023-10-09

mysql字符串转数字的方法是什么

在MySQL中,你可以使用内置的CAST函数或者CONVERT函数来将字符串转换为数字。1. 使用CAST函数:```sqlSELECT CAST('123' AS SIGNED);```这将返回一个有符号的整数。```sqlSELECT
2023-10-09

编程热搜

目录