一个varchar2类型的字段里大多数值都是0~9的数字组成,也存在不是数字的字段或者不全是数字的字段,如何定位出这些不全是数字组成的记录?
例如现在有表table1:(注:第七行记录VALUE值是两个空格)
ID VALUE
1 123
2 17SF
3 7788
4 DOTA
5 SK123
6 333333
7
现在定位VALUE中不全是数字组成的记录:
select * from table1 where length(rtrim(translate(VALUE,' 0123456789','# '))) > 0
结果:
ID VALUE
2 17SF
4 DOTA
5 SK123
7
首先讲一下translate函数吧:
TRANSLATE ( 'char' , 'from_string' , 'to_string' )
TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string。TRANSLATE是REPLACE所提供的功能的一个超集。如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符。to_string不能为空。Oracle将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL。
举个例子:
select translate('123abc','2dc','4e') from dual;
因为from_string和to_string的位置是一一对应的,2对应4,d对应e,c没有对应的值,所以c应该会被删除。所以例子的字符里的2会替换为4,d因为字符串里没有,所以不作替换,c由于没有对应的替换字符,所以字符串里的c会被删除。那么可以得出,结果是:143ab
所以我将0~9的数字全部用空格来替换,然后同过rtrim函数将空格过滤,再计算长度,如果都是数字的话,计算的长度就是0。但是如果一条记录里的值存在空格的情况就要将空格用其他字符进行替换以免被rtrim函数一起过滤掉。
分享到:
相关推荐
在这个问题中,我们需要找出那些在指定字段中不包含数字或逗号的记录。以下是关于这个主题的详细解释和示例。 首先,我们要理解`REGEXP`运算符的基本用法。`REGEXP`用于测试字符串是否符合特定的模式,如果符合,...
- **RatingCount**: 评分计数字段,用于记录评分次数。 #### TargetToFieldTypes - **TargetTo**: 目标到字段,可能用于指定目标位置或接收者。 #### TaxonomyFieldTypes 这些字段类型与分类学管理相关。 - **...
例如,找出`salary`字段是数字的文档: ```javascript db.collection.find({ salary: { $type: 1 } }); ``` 6. **逻辑运算符** - `$or`: 用于组合多个查询条件,满足其中任何一个即可。例如,选取`age`大于20或...
首先,我们要明白 `sum` 方法是tp5中模型或查询构造器提供的功能之一,用于计算指定字段的所有值的总和。例如,如果你有一个 `think_user` 表,其中有一个 `score` 字段代表用户的积分,你可以使用 `sum('score')` ...
- `SELECT * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名`:选择满足特定条件的记录,并按指定字段排序。 - `SELECT * FROM 数据表 WHERE 字段名 LIKE '%字段值%' ORDER BY 字段名`:模糊匹配,用于查找...
8. **自动编号数据类型**:一旦为字段指定了自动编号类型,它将永久地与记录关联,而不是字段、表或域。正确答案是B(记录)。 9. **表间关系**:在Access中,常见的关系包括一对一、一对多和多对多。大多数情况下...
**DbLookup()** 主要用于从指定的视图或文件夹中查找并返回一个或多个文档的指定字段值。这通常用于需要快速检索特定数据的情况。 ##### 语法: ```plaintext @DbLookup(view; keyField; keyValue; valueField; ...
- **完全匹配**:条件如`"China"`,用于查找指定文本字段中与之完全匹配的记录。 - **不匹配**:条件如`Not "Mexico"`,排除与特定值匹配的记录。 - **以特定字符串开头**:使用通配符`Like`,如`"U*"`,找到以...
- `Modify()`:修改记录,找到指定记录后进行更新。 - `Insert()`:插入记录,在指定位置添加新记录。 - `SelectSort()`:选择排序,对所有记录进行排序。 - `Save()`:保存数据,更新文件内容。 3. 数据结构 定义...
ROW_NUMBER()函数可以用来给记录分配一个唯一的数字序号,然后可以使用这个序号来查找某一条记录。例如,要查找第5条记录,可以使用以下SQL语句: ```sql WITH numbered_table AS ( SELECT *, ROW_NUMBER() OVER ...
5. Access2003中无法指定字段类型为图像。 6. OLE对象不是Access2003的数据表字段类型。 7. 无法为备注类型的字段建立索引。 8. 无法为OLE对象类型的字段建立索引。 9. 限制字段值为0~9的输入掩码字符是9。 10. 控制...
- DSUM:对数据库中满足条件的记录的指定字段求和,用于汇总数据。 - DVAR/DVARP:估算或计算基于样本或总体的方差,用于理解数据的波动性。 - GETPIVOTDATA:可以直接从数据透视表中获取特定数据,无需知道数据...
11. **空值处理**:在查询中,IS NULL 用于查找字段值为空的记录。 12. **字段对象类型**:OLE对象字段可以存储图片和其他类型的二进制数据,如Word文档或Excel表格。 13. **有效性规则**:用于确保数据的准确性和...
这种方法在SQL查询中非常实用,比如当你要筛选出某个字段中数字部分固定而其他部分变化的记录时。例如,如果你有一个名为`data_field`的列,其中的数据格式为`'fixed_prefix_numbered_suffix'`,你可以使用`WHERE F_...
【标题】"Flash AS3 数字抽奖"是一个基于ActionScript 3.0的抽奖程序,主要应用于各种活动或展示中,以吸引观众参与并增加互动性。ActionScript是Adobe Flash Professional中的编程语言,用于创建动态内容,如动画、...
6. 条件语句“Where 工资额 >1000”表示筛选出工资额大于1000的记录。 7. AND运算符用于同时满足多个条件。 8. NOT运算符用于排除满足特定条件的记录。 9. 同样,NOT用于否定一个条件。 10. 生成表查询是创建新表的...
这些字段通常由系统定义,也可以在自定义对象中指定。 #### 七、系统字段 系统字段是由Salesforce平台自动生成并维护的字段,用于记录关键的元数据信息,如创建者、修改时间等。常见的系统字段包括: - **Id**:...
在SQL Server中,`REPLACE`函数是一种非常实用的文本操作工具,用于在字符串中查找并替换特定的子串。这个函数在数据清洗、数据转换和处理文本数据时经常被用到。本篇文章将深入探讨如何使用`REPLACE`函数以及解决在...
17. “Sum”函数用于计算指定字段的所有数值之和。 18. 链接表或导入表是将数据从其他系统(如Foxpro)引入Access数据库的方法。 19. 数据库涉及某一特定主题或领域。 20. 数据库的主要功能是集中管理和统一使用数据...