I need to find all the users in the table that have this pattern
x
0123456789@gmail.com
0234567980@outlook.com
0234566666@live.gov
I only know the first 10 digits, the email address can be different.
I did something like this, but I get nothing back
select *
from table where
substr(user_identifier, 1,10) in (
'0123456789','0234567980', '0234566666');
Is there another way that I can capture this data in oracle?
Thank you!
Advertisement
Answer
More a comment that a real answer, but with your sample data your code works well:
SQL> with someTable(user_identifier) as
2 (
3 select '0123456789@gmail.com' from dual union all
4 select '0234567980@outlook.com' from dual union all
5 select '0234566666@live.gov' from dual union all
6 select '02345__XX__66666@live.gov' from dual
7 )
8 select *
9 from someTable where
10 substr(user_identifier, 1,10) in ('0123456789','0234567980', '0234566666');
USER_IDENTIFIER
----------------------
0123456789@gmail.com
0234567980@outlook.com
0234566666@live.gov
3 rows selected.
Say you have a table like this:
create table someTable(user_identifier ) as
select '0123456789@gmail.com' from dual union all
select '0234567980@outlook.com' from dual union all
select '0234566666@live.gov' from dual union all
select '02345__XX__66666@live.gov' from dual
SQL> select * from someTable;
USER_IDENTIFIER
-------------------------
0123456789@gmail.com
0234567980@outlook.com
0234566666@live.gov
02345__XX__66666@live.gov
4 rows selected.
Your query would give
USER_IDENTIFIER
-------------------------
0123456789@gmail.com
0234567980@outlook.com
0234566666@live.gov
3 rows selected.
What do you need instead?