Difference between CHARINDEX and PATINDEX

udayarumilli_charindexDifference between CHARINDEX and PATINDEX

CHARINDEX: It is a string function which returns the starting position of a pattern.

PATINDEX: It is a string function which returns the starting position of a pattern. We can also use wildcard characters in searching for a pattern.

Let’s see some examples to understand the exact difference

First create a table and insert some test data.

-- Test Database
USE udayarumilli
GO
CREATE TABLE MaintLog (Maint_ID INT IDENTITY,

             Activity VARCHAR(100),

             Log_Desc TEXT);

GO

INSERT INTO MaintLog (Activity,Log_Desc)
SELECT 'Maintenace Plan - 112','Executed as admin. DBCC executed for all databases without no errors'
UNION
SELECT 'SSIS Package - S11','Executed as admin. SSIS executed for databases without no errors and imported data into db_199'
UNION
SELECT 'Maintenace Plan - 113','Executed as admin. DBCC executed for database db_tran_113 without no errors'
UNION
SELECT 'SSIS Package - S12','Executed as admin. SSIS executed for databases without no errors and imported data into db_134';

Let’s try these examples with the column “Activity” column

SELECT  Activity,
        CHARINDEX('Maint',Activity)
FROM    MaintLog;

GO

SELECT Activity,
       PATINDEX('%Maint%',Activity)
FROM   MaintLog
WHERE  PATINDEX('%Maint%',Activity) > 0;

Now let’s try the same with the column “Log_Desc”

Briefly PATINDEX = CHARINDEX + Wildcard Search

Posted in SQL Development | Tagged , , , , , , , , | Leave a comment
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments