I am attempting to use a LIKE clause in a SQL statement to match a certain pattern within Oracle.
I would like to do something as such:
LIKE '[A-Z][A-Z][1-4]%'
..but I can't use a regex because this is on Oracle9i (regex support came in 10g).
I am attempting to match something that has two characters before it, then a number between 1 and 4 and that whatever beyond that. I have attempted this, but it doesn't seem to work. The only way I have been able to get it to work is by doing:
WHERE ...
LIKE '%1__' OR
LIKE '%2__' OR
LIKE '%3__' OR
LIKE '%4__'
I am not sure if the way I would like to do it is possible or the correct way as I have never attempted patterns with the LIKE clause.
Any help you could give would be greatly appreciated.
Clunky, but perhaps:
select *
from <your_table>
where TRANSLATE(SUBSTR(<blah>,1,3),'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234',
'AAAAAAAAAAAAAAAAAAAAAAAAAA1111') = 'AA1';
might suit your needs....
EDIT: Incorporated xlnt suggestion by @Hobo to translate the substring, rather than taking the substring of the translated string...