sql中判断某列是否为数字

sql中判断某列是否为数字

ID:8799954

大小:15.15 KB

页数:4页

时间:2018-04-08

sql中判断某列是否为数字_第1页
sql中判断某列是否为数字_第2页
sql中判断某列是否为数字_第3页
sql中判断某列是否为数字_第4页
资源描述:

《sql中判断某列是否为数字》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、oracle中判断某列是否为数字在我们平常的开发中可能会遇到这样的问题,就是判断某一列是否全部由数字组成,我们都知道oracle并没有给我们提供这样一个现成的函数,那么根据我的经验我总结了两个行之有效的方法(列名:column,表名:table):1.使用trim+translate函数:select*fromtablewheretrim(translate(column,'0123456789',''))isNULL;这里要注意的是:translate函数的第三个参数是一个空格,不是'',因为translate的第三个参数如果为空的话,那么永远返回'',这样的就不能达到过滤纯数字的目的。这样

2、把所有的数字都转化为空格,如果全部是由数构成,那么一旦trim后自然是空,实现了上述目标。当然如果想排除空项的话,可以这样写:select*fromtablewheretrim(translate(nvl(column,'x'),'0123456789',''))isNULL;--x表示任何'0-9'以外的字符。2.使用regexp_like函数:select*fromtablewhereregexp_like(column,'^[0-9]+[0-9]$');这里要注意的是:regexp_like函数不是在所有的oracle版本中都能使用的。regexp_like是oracle支持正则表达式的

3、四个函数:regexp_like,regexp_replace,regexp_instr,regexp_substr中的一个,有关这方面更加详细信息,请关注相关文档。3.删除重复数据:3.1首先定义怎样的数据是重复的数据,即在将要建立主键的列上存在重复的数据。这里假如准备建立主键的列是col_1,可以巧用rowid来实现:3.2SQL语句如下:deletefromtableAwhereA.rowid<(selectmax(rowid)fromtableBwhereA.col_1=B.col_1);-----------------------------------------oracle判断

4、字段是否为是数字regexp_like用法正则表达式/*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE:与LIKE的功能相似2,REGEXP_INSTR:与INSTR的功能相似3,REGEXP_SUBSTR:与SUBSTR的功能相似4,REGEXP_REPLACE:与REPLACE的功能相似它们在用法上与OracleSQL函数LIKE、INSTR、SUBSTR和REPLACE用法相同,但是它们使用POSIX正则表达式代替了老的百分号(%)和通配符(_)字符。POSIX正则表达式由标准的元字符(metacharacters)所构成:'^'匹配输入字符串的开始位置,

5、在方括号表达式中使用,此时它表示不接受该字符集合。'$'匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配''或'r'。'.'匹配除换行符之外的任何单字符。'?'匹配前面的子表达式零次或一次。'+'匹配前面的子表达式一次或多次。'*'匹配前面的子表达式零次或多次。'

6、'指明两项之间的一个选择。例子'^([a-z]+

7、[0-9]+)$'表示所有小写字母或数字组合成的字符串。'()'标记一个子表达式的开始和结束位置。'[]'标记一个中括号表达式。'{m,n}'一个精确地出现次数范围,m=<出现次数<=n,'{m}'表示出现m次,'{m,}'表示至少出现m

8、次。um匹配num,其中num是一个正整数。对所获取的匹配的引用。字符簇:[[:alpha:]]任何字母。[[:digit:]]任何数字。[[:alnum:]]任何字母和数字。[[:space:]]任何白字符。[[:upper:]]任何大写字母。[[:lower:]]任何小写字母。[[:punct:]]任何标点符号。[[:xdigit:]]任何16进制的数字,相当于[0-9a-fA-F]。各种操作符的运算优先级转义符(),(?:),(?=),[]圆括号和方括号*,+,?,{n},{n,},{n,m}限定符^,$,anymetacharacter位置和顺序

9、*/--创建表createtab

10、lefzq(idvarchar(4),valuevarchar(10));--数据插入insertintofzqvalues('1','1234560');insertintofzqvalues('2','1234560');insertintofzqvalues('3','1b3b560');insertintofzqvalues('4','abc');insertintofzqvalues('

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。