LIKE IN ORACLE - Online Tech Support
  Home

How To Use Oracle LIKE Conditions

 online tech support  Comments Off on How To Use Oracle LIKE Conditions
 

This web page is based on examples to be easier to follow. The Conditions Oracle LIKE, LIKEC, LIKE2 and LIKE4 allow to match text value using pattern matching method. The condition returns values who’s pattern is similar or when using NOT condition then not similar. The Oracle Like syntax is:

'<you_value1>' [NOT] LIKE '<your_value2>' [ ESCAPE '<your_escape_char>' ]

This SQL query is the most simple Like condition where it is looking for a string starting with “o“. Since the word on another side of the condition is “oracle” and that is a positive match the query returns the “oracle” word.

 SELECT 'oracle'
  FROM dual
 WHERE 'oracle' LIKE 'o%';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

The second SQL query has still the “oracle” word on the left side but the Like condition is looking for a string starting with “r“. Since the word doesn’t match the Select statement doesn’t return anything.

 SELECT 'oracle'
  FROM dual
 WHERE 'oracle' LIKE 'r%';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

The following SQL query is showing the data we are going to use for the following Oracle Like examples and the Select statement is used as a “source” .

 SELECT 'ABC'||rownum||'def' as text
   FROM dual
    CONNECT BY rownum < 11;

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

In this example below we will find all texts starting with ABC so the condition looks “ABC%“. The “%” character sets a condition to Like to ignore the characters after ABC string.

 SELECT *
   FROM
    (SELECT 'ABC'||rownum||'def' AS text
       FROM dual
        CONNECT BY rownum < 11 )
  WHERE text LIKE 'ABC%';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

The output is not so different for the first query because all texts are starting with ABC letters. Lets amend the Oracle Like conditions and set “%1def“. This condition is looking for strings ending with “1def” and as we are using the “%” character in the beginning it doesn’t matter how the string starts or how long it is. The only thing that matters is the end “1def” and no more a letter after.

 SELECT *
   FROM
    (SELECT 'ABC'||rownum||'def' AS text
       FROM dual
        CONNECT BY rownum < 11 )
  WHERE text LIKE '%1def';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

The SQL query returned only 1 lines that ends with “1def“.

The fifth example with Like in Oracle has set rules to the beginning and ending parts. The string have to start with “ABC1” and it should end with “def“. Please take a look at the SQL statement the “%” character is in the middle now. This way set rule says: it is not important how many letters are long the text or what are the letter while the string starts with ABC1 and ends with def it will be suitable for us.

 SELECT *
   FROM
    (SELECT 'ABC'||rownum||'def' AS text
       FROM dual
        CONNECT BY rownum < 11 )
  WHERE text LIKE 'ABC1%def';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

The output has two lines and both has start and end as we set in the rule. Now if we want to be more specific and set the rule as the string should start with “ABC1″ and end with “def“, but it should have only 1 letter between them. The letter could be any possible letter but it should be only 1 letter be between them then the condition looks “ABC1_def“. With this condition the string cannot be longer than 8 characters and the query found only 1 line. See the result below.

 SELECT *
   FROM
    (SELECT 'ABC'||rownum||'def' AS text
       FROM dual
        CONNECT BY rownum < 11 )
  WHERE text LIKE 'ABC1_def';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

Lets try another example with the strict Oracle Like condition as we had the last one. On this example below the text should start with “ABC” and end with “def” but it shouldn’t be longer than 7 characters.

 SELECT *
   FROM
    (SELECT 'ABC'||rownum||'def' AS text
       FROM dual
        CONNECT BY rownum < 11 )
  WHERE text LIKE 'ABC_def';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

This output returned almost all lines except the 1 string that is 8 characters long.

The following examples are with Oracle Like and the escape character. To bring out the meaning of the escape character we will need to change a bit the “source” query. Please take a look at the new output below. There are two lines ending with “%” character and with the Like conditions above you wouldn’t be able to set those character into your condition. They would be treated as any character.

 SELECT 'ABC'||rownum||'def'||DECODE (MOD (rownum,4),0,'%') AS text
   FROM dual
    CONNECT BY rownum < 11;

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

On this example below we are going to set “\” as the escaping character. This character is important to let the Like condition to know that a character after the escape character should be treated as a literal character and even it may have set a special meaning in Oracle system use it as a plain character. The following example would be possible without the escape character since the “%” character means ignore rest of the text and we got 2 lines ending with the “%” character. The rule we have set in the SQL query (‘ABC%\%’ ESCAPE ‘\’) is looking for string that starts with “ABC” letters and ends with the “%” character.

 SELECT *
   FROM
    (SELECT 'ABC'||rownum||'def'||DECODE (MOD (rownum,4),0,'%') AS text
       FROM dual
        CONNECT BY rownum < 11)
  WHERE text LIKE 'ABC%\%' ESCAPE '\';

online tech support computer help computer technician computer problems computer oracle like oracle escape like in oracle database software database sql database programming database oracle retirement planning retirement sql database oracle database sql

The output contains the two only lines that started with ABC and had the “%” character in the end.


See Also:
Home