我正在尝试从Siebel的S_CONTACT
表中返回手机号码列表,其中值包含除数字以外的任何内容。
我使用的查询是:
select cell_ph_num
from s_contact
where regexp_replace(cell_ph_num, '0|1|2|3|4|5|6|7|8|9', '') <> ''
但我没有结果。
但是,当我运行以下查询时:
select regexp_replace(cell_ph_num, '0|1|2|3|4|5|6|7|8|9', '') from s_contact
我得到了很多结果。
这些结果是否与“不等于空字符串”条款不匹配?
答案 0 :(得分:3)
''
为NULL
..因此必须为IS NOT NULL
select cell_ph_num
from s_contact
where regexp_replace(cell_ph_num, '0|1|2|3|4|5|6|7|8|9', '') IS NOT NULL
或者我们可以REGEXP_LIKE
类
POSIX
WHERE REGEXP_LIKE (cell_ph_num,'[^[:DIGIT:]]');
或 Perl 样式POSIX
等效
WHERE REGEXP_LIKE (cell_ph_num,'\D');