查出数字字符字段中非数字字符的记录
2014-05-19 11:18
162 查看
最近,将原来的数字符字段转换为数字时,总报错误:无效数字。
如何找出其中哪些是非数字字符的记录?比较麻烦的事。下面是用Oracle DB自带的函数translate可以找出来的
1.创建测试表
Create Table TestChar(
ITEM_NUMBER VARCHAR2(20)
);
2.手工插入测试记录
Insert Into TestChar (ITEM_NUMBER) values ('312');
Insert Into TestChar (ITEM_NUMBER) values ('312');
Insert Into TestChar (ITEM_NUMBER) values ('4412');
Insert Into TestChar (ITEM_NUMBER) values ('152');
Insert Into TestChar (ITEM_NUMBER) values ('162');
Insert Into TestChar (ITEM_NUMBER) values ('172');
Insert Into TestChar (ITEM_NUMBER) values ('142');
Insert Into TestChar (ITEM_NUMBER) values ('142');
Insert Into TestChar (ITEM_NUMBER) values ('112');
Insert Into TestChar (ITEM_NUMBER) values ('1d2');
Insert Into TestChar (ITEM_NUMBER) values ('152');
Insert Into TestChar (ITEM_NUMBER) values ('125');
Insert Into TestChar (ITEM_NUMBER) values ('162');
Insert Into TestChar (ITEM_NUMBER) values ('712');
Insert Into TestChar (ITEM_NUMBER) values ('A712');
commit;
3.妙用Oracle 内置函数Translate找出非数字字符的记录
select trim(translate(RTRIM(LTRIM(ITEM_NUMBER)), '#0123456789', '#'))
from TestChar
Where trim(translate(RTRIM(LTRIM(ITEM_NUMBER)), '#0123456789', '#')) is not null;
如何找出其中哪些是非数字字符的记录?比较麻烦的事。下面是用Oracle DB自带的函数translate可以找出来的
1.创建测试表
Create Table TestChar(
ITEM_NUMBER VARCHAR2(20)
);
2.手工插入测试记录
Insert Into TestChar (ITEM_NUMBER) values ('312');
Insert Into TestChar (ITEM_NUMBER) values ('312');
Insert Into TestChar (ITEM_NUMBER) values ('4412');
Insert Into TestChar (ITEM_NUMBER) values ('152');
Insert Into TestChar (ITEM_NUMBER) values ('162');
Insert Into TestChar (ITEM_NUMBER) values ('172');
Insert Into TestChar (ITEM_NUMBER) values ('142');
Insert Into TestChar (ITEM_NUMBER) values ('142');
Insert Into TestChar (ITEM_NUMBER) values ('112');
Insert Into TestChar (ITEM_NUMBER) values ('1d2');
Insert Into TestChar (ITEM_NUMBER) values ('152');
Insert Into TestChar (ITEM_NUMBER) values ('125');
Insert Into TestChar (ITEM_NUMBER) values ('162');
Insert Into TestChar (ITEM_NUMBER) values ('712');
Insert Into TestChar (ITEM_NUMBER) values ('A712');
commit;
3.妙用Oracle 内置函数Translate找出非数字字符的记录
select trim(translate(RTRIM(LTRIM(ITEM_NUMBER)), '#0123456789', '#'))
from TestChar
Where trim(translate(RTRIM(LTRIM(ITEM_NUMBER)), '#0123456789', '#')) is not null;
相关文章推荐
- 查出数字字符字段中非数字字符的记录
- 查出数字字符字段中非数字字符的记录
- 查出数字字符字段中非数字字符的记录
- Firebird:如何查询字符字段值后三位为0的记录
- mysql 通过查询条件查出指定字段记录数。
- Firebird:如何查询字符字段值后三位为0的记录
- 循环SQL语句实现,将一个数字字段的商数拆分成多条记录
- 删除字符串中非数字的字符
- 往数据表中插入 "字段名 字符串" , 对于非字符字段,采用 "递增整形数字" 代替(日期字段会自动转变为对应日期)
- 如何查出同一张表中字段值重复的记录
- 在SQL语句中查询多条记录并把多条记录同一字段的值连接成一个字符并返回的写法
- 提取数字、英文、中文、过滤重复字符等SQL函数(含判断字段是否有中文)
- 从字符串字段中,查找全是数字的记录
- 如何查出同一张表中字段值重复的记录
- 如何查出同一张表中字段值重复的记录
- --查出多条记录中两个字段都相同的重复记录
- mssql 字段内容合并 数字 字符
- 如何查出同一张表中字段值重复的记录
- 查询表中某一个字段的数字最大值的记录
- SQL server 中 varchar, nvarchar 字段,字符串带有尾随空白字符导致查询不到记录