博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表中的一列值有字符和数字,如何将两者通过查询筛选出来
阅读量:5994 次
发布时间:2019-06-20

本文共 1345 字,大约阅读时间需要 4 分钟。

方法有多种下面主要使用了Oracle自带的一个函数来实现

函数: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。 

筛选纯数字:

SELECT A.COL FROM A

WHERE TRANSLATE(A.COL,'*0123456789','*') IS NULL;

 

TRANSLATE函数的其他应用:

1、将数字转换为1,其他的大写字母转换为X(大小写有区别),然后返回

SELECT TRANSLATE('8QKW119','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX')  "Translate example"FROM DUAL;

2、将数字保留,将其他的大写字母移除。

SELECT TRANSLATE('8QKW119','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') "Translate example"FROM DUAL

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

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

4、下面示例证明,如果from_string的字符数大于to_string,那么多出的字符会被移除

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

FROM DUAL 

ina三个字符会从char参数中移除,当然区分大小写

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

SELECT TRANSLATE('8QKW119',

'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',

'') "License"
FROM DUAL

6、将名字进行替换,只保留最后的一个字 例如:“张晓亮”变为“**亮”

select translate('上官可文',SUBSTR('上官可文',1,LENGTH('上官可文')-1),lpad('*',LENGTH('上官可文')-1,'*')) from dual

转载于:https://www.cnblogs.com/lipera/p/6273063.html

你可能感兴趣的文章
SQL Server 2016:内存列存储索引
查看>>
立项申请书模板
查看>>
C#提高知识 ADO.NET实体数据模型(1)
查看>>
送给那些搞电脑维修的人儿
查看>>
Exchange Server 2013预览版服务器角色概况
查看>>
IPSec ***和SSL ***两种***的安全风险比较
查看>>
智能设备:用户隐私丛林,恶意应用淘金地
查看>>
Hadoop入门扫盲:hadoop发行版介绍与选择
查看>>
实战1:创建Windows Server 2008域
查看>>
在 Windows 2012 R2 安装 SharePoint 2013
查看>>
《统一沟通-微软-实战》-6-部署-5-边缘服务器-2012-07-12-3
查看>>
活动目录域控制器最长可以离线多久?
查看>>
红帽转型为云计算解决方案提供商
查看>>
疯狂ios之cocos2d中的文本
查看>>
Mac下通过 brew 安装不同版本的php
查看>>
云在天之南——我的七天七夜(率性苍山洱海)
查看>>
如何迅速入门Shell 编程
查看>>
Linux企业应用微博客正式开通
查看>>
64位linux下的gns3网络模拟器配置
查看>>
效果差学费贵售后难,VIPKID米雯娟的野心不能只靠“烧钱”营销
查看>>