Upto 20% Scholarship on Live Online Classes

- Technology Blogs -

How to Use Like Operator in SQL Server?

  • »
  • Blog
  • »
  • SQL
  • »
  • How to Use Like Operator in SQL Server?
Like Operator in SQL Server

SQL is the common query language to work with databases. When you design a report or using BI or any particular reporting tool, the software is running SQL query behind the scenes and always returns the selected data. When you want to select the desired data based on specific criteria, the WHERE clause is commonly used by the programmer to complete this need. It gives you an option to query specific rows to fetch the desired data instead of querying an entire table.

Today, in this blog post, we will discuss how to use SQL LIKE operator in the SQL server along with regular expressions to manipulate text. We will also discuss the basic syntax of the LIKE clause and how to use it with wildcard characters.

We will be using character sets and repetition expressions to create the most flexible matching patterns. We will also learn using LIKE operator in different ways. In later sections, we will discuss the LIKE clause with some examples for a depth understanding of the concept.

What is SQL LIKE Operator?

The SQL LIKE is a logical operator to check if a specified string matches the desired pattern or not. A pattern may involve regular expressions or wildcard characters etc. The LIKE operator in SQL can be used along SELECT, UPDATE, WHERE, or DELETE statements, etc. to filter rows based on matching patterns. HERE is the basic syntax of SQL LIKE operator in SQL Server.

column | expression LIKE pattern [ESCAPE escape_character]

SQL Like operator is mostly used for filtering addresses where you know only a selected part of the address and want to fetch the complete address using SQL LIKE operator. And wildcards are the most attractive resource here to evaluate the string even better based on requirements.

What is the Pattern?

The pattern is a sequence of characters you want to search in a given expression or column. It may include the following wild characters as given below. Wildcard helps using Like Operator in a more flexible and excellent manner.

The Percent (%) Wildcard A string of zero or more characters
The Underscore (_) Wildcard It may be any single character
The [list of characters] Wildcard A single character within a specified set
The [Character – Character] Wildcard A single character within a specified range
The [^] Wildcard A single character not available within a specified range

What is Escape Character?

The Escape characters in SQL server instruct LIKE operator to manage wildcards as regular expressions. There is no default value for escape characters, and it evaluates only one character at one time. The LIKE operator returns TRUE if an expression matches the specified pattern. To reverse the result, you should add not operator with the LIKE clause.  Here is the syntax of how to negate the result using NOT operator in the same query.

column | expression NOT LIKE pattern [ESCAPE escape_character]

What is a regular expression?

A regular expression is a sequence of characters or pattern that defines how data can appear in an expression. Usually, SQL databases contain different types of data like strings, numeric data, or images, etc. SQL stores the unstructured data too. And SQL queries usually return data based on regular expressions. One common example is validating a credit card number or phone number etc. Another example could be validating numeric data against a given sequence.

Read:   How to Insert Multiple Rows Using Stored Procedure in SQL?

SQL server database implementations provide various built-in regular expressions support. Let us see how to use regular expressions in a SQL query. Take an example where we need to display all the records whose name starts with the alphabet “P.” The syntax can be written as given below.

SELECT * FROM Survey WHERE RespondentFullName LIKE 'p%'

Regular expressions are generally named as regex in SQL, and you can use any of them as per the convenience. There are certain cases when sensitivity has to be considered within regex processing. You should focus on sensitivity properties there to compute the final output.

How to use SQL LIKE operator with wildcard characters?

In this section, we will discuss how to use SQL LIKE operator with different wildcard characters as discussed in the table above.

1). SQL LIKE clause with “%” wildcard

The following SQL query returns first top 10 rows where the last name starts with the letter ‘A’ and rest of the string is unknown. You can query the entire database table as well if required.

SELECT TOP 10 *
FROM Person.Person
WHERE firstname LIKE 'A%';

The “%” wildcard can be used on either side of the keyword. Keywords are the part of a longer text string or word. When “%” wildcard is used at the left side of the keyword, it means that keyword is on the ending side of the word. When it is used on the right side of the keyword, it means the keyword is at the beginning of another word.

Read:   How to Increase the Speed of SQL Query Execution

2). SQL LIKE clause with “_” wildcard

The underscore wildcard is used for matching a single character only. The following SQL query returns the phone number whose area code starts with 7 and ends with 8 in the “phone-number” column. We have also used “%” wildcard here as we are not concerned about the rest of the string.

SELECT p.FirstName, 
       p.LastName, 
       PhoneNumber
FROM Person.PersonPhone AS ph
     INNER JOIN Person.Person AS p ON ph.BusinessEntityID = p.BusinessEntityID
WHERE ph.PhoneNumber LIKE '7_8%'
ORDER BY p.LastName;

3). SQL LIKE clause with “[Square bracket]” wildcard

Square Bracket wildcard is used to identify multiple single characters into that particular position. Let us say you have to find out rows where the third character in the first-name column starts with either “I” or “K.” The following query will look for “I” first then it will look for “K.” Let execute the SQL query first.

SELECT p.FirstName, 
       p.LastName, 
       PhoneNumber
FROM Person.PersonPhone AS ph
     INNER JOIN Person.Person AS p ON ph.BusinessEntityID = p.BusinessEntityID
WHERE ph.PhoneNumber LIKE '7_8%' and p.lastname like 'Ba[ik]%'
ORDER BY p.LastName;

Let us see how to rewrite the same query using the “OR” operator.

SELECT p.FirstName, 
       p.LastName, 
       PhoneNumber
FROM Person.PersonPhone AS ph
     INNER JOIN Person.Person AS p ON ph.BusinessEntityID = p.BusinessEntityID
WHERE ph.PhoneNumber LIKE '7_8%' and (p.lastname like 'Bai%' or p.lastname like 'Bak%')
ORDER BY p.LastName;

4). SQL LIKE clause with “^” wildcard

To negate the result, we may use “^” wildcard in the SQL Server along with the SQL LIKE clause. For example, you want to display all the rows that don’t have letters A to D in the first character of their last names. It becomes a NOT condition here. Here is the example for your reference.

SELECT p.FirstName, 
       p.LastName
FROM Person.Person p
WHERE LastName LIKE '[^a-d]%'
ORDER BY p.lastname;

The output for this query is rows that don’t contain characters from A to D in the first position.

Learn using SQL LIKE operator with a CASE statement

The following query pulls out the contacts where phone numbers are formatted like three-three-four digits including dashes in between. The pattern is further compared with the phone-number columns to fetch the desired result. Here, the CASE statement is used to evaluate the specific pattern to drive the phone category type.

SELECT p.FirstName, 
       p.LastName, 
     PhoneNumber,
       CASE WHEN ph.PhoneNumber LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]' then 'Domestic Phone Number'
     ELSE 'International Phone number'
     END PhoneNumber
FROM Person.PersonPhone AS ph
     INNER JOIN Person.Person AS p ON ph.BusinessEntityID = p.BusinessEntityID
ORDER BY p.LastName;

Phone numbers are either defined as domestic or international. The phone number column is evaluated here with SQL LIKE operator using square brackets. Now the string is evaluated from zero to nine from the first character to the last character and the matched patterns are listed below as the final output.

Read:   What is Composite Key in SQL? Composite Primary & Foreign Key Explain with Example

SQL Like Operator with dynamic SQL

The following SQL statement returns rows where the last name matches the pattern ‘barb.’ Here, the pattern is created dynamically and matched against the given expression. Here is the query for your reference.

DECLARE @ELastName VARCHAR(20)= 'Barb';
SELECT p.FirstName, 
       p.LastName, 
       a.City
FROM Person.Person p
     JOIN Person.Address a ON p.BusinessEntityID = a.AddressID
WHERE p.LastName LIKE '%'[email protected]+'%';

Keep in mind that CHAR injects trailing blacks by default based on the length of the field. You should use RTRIM operator here to manage the training blanks especially when you are using the char data type. In the following SQL statement, the first name and the last name is of char data type, and we have used RTRIM function here for suppressing the trailing blanks.

DECLARE @ELastName CHAR(20)= 'Barb';
SELECT p.FirstName, 
       p.LastName, 
       a.City
FROM Person.Person p
     JOIN Person.Address a ON p.BusinessEntityID = a.AddressID
WHERE p.LastName LIKE '%'+RTRIM(@ELastName)+'%';

Learn using SQL Like operator with IF statement

In the following SQL statement, input values are evaluated for a specific pattern in the conditional clause using the IF statement. The input string is evaluated for a given pattern using SQL LIKE operator with wildcards expressions and return a valid output data. Here is the sample query for your reference.

DECLARE @RuleName NVARCHAR(MAX)= 'SQL Sever 2019 CTP is available for preview';
IF @RuleName LIKE 'SQL Sever [0-9]% CTP is available for preview'
    PRINT 'valid input good!';
    ELSE
    PRINT 'not a valid good!';

Summary

As discussed in the blog, SQL LIKE is a great searching technique for matching a string of characters with a specified pattern especially when we are not sure of what you are looking for exactly. With the usage of wildcard characters, we can make the SQL LIKE operator more flexible.

I hope you enjoyed reading this blog on SQL LIKE operator in the SQL Server. To know more on practical concepts of SQL operators, you should join our SQL certification program at JanBask Training and get ready to expand your knowledge base with us.

JanBask Training

JanBask Training

JanBask Training is a leading Global Online Training Provider through Live Sessions. The Live classes provide a blended approach of hands on experience along with theoretical knowledge which is driven by certified professionals.



Write a Comment

avatar
  Subscribe  
Notify of

Trending

Top 30 Core Java Interview Questions and Answers for Fresher, Experienced Developer
What Is Trigger In Salesforce?
Top 30 Manual Testing Interview Questions & Answers for Fresher
Different Types of SQL Server & SQL Database Functions
Top 20 AWS Interview Question and Answers For Fresher, Experienced Developer

Related Posts

All you need to know about SQL Cheat Sheet
Introduction to SQL Injection and Attacks
How to Create Table in SQL Server by SQL Query?
SQL- A Leading Language for Data Science Experts
What is NoSQL? NoSQL Tutorial Guide for Beginner