首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回字段仅包含字母(不含数字)字符的行

问返回字段仅包含字母(不含数字)字符的行
EN

Stack Overflow用户
提问于 2017-03-09 00:57:16
回答 1查看 50关注 0票数 0

我将会过于简单。这是针对Oracle SQL的。我有一个包含USER_ID列的表。

User_id的长度是可变的,并且是VARCHAR。某些用户in中包含字母和数字。有些只有字母。

USER_NAME示例: DAVIDMR和JOHNS5423

我需要两个独立的查询:一个返回没有任何数字的USER_ID,另一个返回USER_ID必须有数字的查询。

我尝试过WHERE USER_ID NOT LIKE '%[0-9]%'的各种排列,但它要么不返回任何记录,要么返回所有记录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-09 01:02:10

您可以使用REGEXP_LIKE。

对于user_id中没有数字的部分:

代码语言:javascript
复制
select *
from t
where not regexp_like(USER_ID, '[[:digit:]]');

对于user_id中的数字:

代码语言:javascript
复制
select *
from t
where regexp_like(USER_ID, '[[:digit:]]');

另一种方法是使用TRANSLATE

对于user_id中没有数字的部分:

代码语言:javascript
复制
select *
from t
where length(user_id) = length(translate(user_id,' 1234567890',' '));

对于user_id中有数字的那些:

代码语言:javascript
复制
select *
from t
where length(user_id) <> length(translate(user_id,' 1234567890',' '));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42677321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档