where子句中的条件返回以字母开头的值?

时间:2014-05-27 17:35:17

标签: sql oracle

我需要在where子句中设置一个条件来返回包含字母的值。 以下是我的数据示例:一个是纯数字123456789,一个是混合AB1234567

我只想返回混合字母/数字值。

由于

编辑:以下答案中的两种方法都运行正常! 你们真棒!

我使用where col>'A'找到了一种更简单的方法 针对已回答的脚本测试结果,并返回相同的内容。

2 个答案:

答案 0 :(得分:2)

SELECT * FROM table WHERE REGEXP_LIKE(column, '[A-Za-z0-9]') and REGEXP_LIKE(column,'[^0-9]')

查询选择字母数字记录并使用否定^

过滤数字记录

Demo here

答案 1 :(得分:2)

where LENGTH(TRIM(TRANSLATE(YourField, ' +-.0123456789', ' '))) is not null

来自:http://www.techonthenet.com/oracle/questions/isnumeric.php

使用包含的数据进行测试 MX01386 7493559

不为null返回MX记录为空返回的数字记录。

这本质上是用空格替换每个值然后如果结果值为空则修剪该空格,那么它必须是数字。如果它不为null,则它包含此列表之外的字符' 。+ - 0123456789'