CHARINDEX SQL function


1. Usage of CHARINDEX to find specific text.

SQL Server Query 1

            
SELECT CustomerID, CompanyName, CHARINDEX('er', CompanyName) AS PositionOf_er   
FROM Customers
WHERE CHARINDEX('er', CompanyName) > 0;

Create SQL query with SqlQueryBuilder 1

            
var (sql1, parameters1) = new SqlQueryBuilder()  
.Select().Columns("CustomerID", "CompanyName")
.Column(new CHARINDEX("er", new Column("CompanyName")), "PositionOf_er")
.From("Customers")
.Where(new Where(new CHARINDEX("er", new Column("CompanyName")), SQLComparisonOperators.GREATER_THAN, 0))
.Build();

Query build by SqlQueryBuilder 1

            
SELECT CustomerID,
       CompanyName,
       CHARINDEX(@pMAIN_2507192009574193060, CompanyName, 1) AS PositionOf_er
FROM Customers
WHERE CHARINDEX(@pMAIN_2507192009574193061, CompanyName, 1) > @pMAIN_2507192009574193062;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192009574193060 er
@pMAIN_2507192009574193061 er
@pMAIN_2507192009574193062 0

Query Results 1:

  CustomerID CompanyName PositionOf_er
1 ALFKI Alfreds Futterkiste 13
2 ANTON Antonio Moreno Taquería 20
3 BERGS Berglunds snabbköp 2
4 BLAUS Blauer See Delikatessen 5
5 BSBEV B's Beverages 8
6 CENTC Centro comercial Moctezuma 11
7 WANDK Die Wandernde Kuh 9
8 DUMON Du monde entier 14
9 EASTC Eastern Connection 5
10 ERNSH Ernst Handel 1
11 FISSA FISSA Fabrica Inter. Salchichas S.A. 18
12 FRANK Frankenversand 9
13 GALED Galería del gastrónomo 4
14 HUNGO Hungry Owl All-Night Grocers 26
15 LILAS LILA-Supermercado 9
16 MORGK Morgenstern Gesundkost 9
17 PERIC Pericles Comidas clásicas 2
18 RATTC Rattlesnake Canyon Grocery 24
19 RICSU Richter Supermarkt 6
20 ROMEY Romero y tomillo 4
21 SPLIR Split Rail Beer & Ale 14
22 THECR The Cracker Box 10
23 TRADH Tradição Hipermercados 13
24 TRAIH Trail's Head Gourmet Provisioners 31
25 VAFFE Vaffeljernet 8
26 VINET Vins et alcools Chevalier 24
27 WARTH Wartian Herkku 10
28 WHITC White Clover Markets 11


2. Usage of CHARINDEX to find space position.

SQL Server Query 2

            
SELECT ProductName, CHARINDEX(' ', ProductName) AS FirstSpacePosition, CHARINDEX(' ',   
ProductName, CHARINDEX(' ', ProductName) + 1) AS SecondSpacePosition
FROM Products
WHERE ProductName LIKE '% % %';

Create SQL query with SqlQueryBuilder 2

            
var (sql2, parameters2) = new SqlQueryBuilder()  
.Select().Column("ProductName", "ProductName")
.Column(new CHARINDEX(" ", new Column("ProductName")), "FirstSpacePosition")
.Column(new CHARINDEX(" ", new Column("ProductName"), new CHARINDEX(" ", new Column("ProductName"), 1).AddArithmatic(new Arithmatic().Add(1))), "SecondSpacePosition")
.From("Products")
.Where(new Where(new LIKE(new Column("ProductName"), "% % %")))
.Build();

Query build by SqlQueryBuilder 2

            
SELECT ProductName AS ProductName,
       CHARINDEX(@pMAIN_2507192009574253630, ProductName, 1) AS FirstSpacePosition,
       CHARINDEX(@pMAIN_2507192009574253631, ProductName, CHARINDEX(@pMAIN_2507192009574253632, ProductName, 1) + @pMAIN_2507192009574253633) AS SecondSpacePosition
FROM Products
WHERE ProductName LIKE @pMAIN_2507192009574253634;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192009574253630
@pMAIN_2507192009574253631
@pMAIN_2507192009574253632
@pMAIN_2507192009574253633 1
@pMAIN_2507192009574253634 % % %

Query Results 2:

  ProductName FirstSpacePosition SecondSpacePosition
1 Boston Crab Meat 7 12
2 Chef Anton's Cajun Seasoning 5 13
3 Chef Anton's Gumbo Mix 5 13
4 Côte de Blaye 5 8
5 Escargots de Bourgogne 10 13
6 Gnocchi di nonna Alice 8 11
7 Grandma's Boysenberry Spread 10 22
8 Jack's New England Clam Chowder 7 11
9 Laughing Lumberjack Lager 9 20
10 Louisiana Fiery Hot Pepper Sauce 10 16
11 Louisiana Hot Spiced Okra 10 14
12 Manjimup Dried Apples 9 15
13 Mishi Kobe Niku 6 11
14 Mozzarella di Giovanni 11 14
15 Northwoods Cranberry Sauce 11 21
16 Original Frankfurter grüne Soße 9 21
17 Queso Manchego La Pastora 6 15
18 Singaporean Hokkien Fried Mee 12 20
19 Sir Rodney's Marmalade 4 13
20 Sir Rodney's Scones 4 13
21 Tarte au sucre 6 9
22 Teatime Chocolate Biscuits 8 18
23 Uncle Bob's Organic Dried Pears 6 12
24 Wimmers gute Semmelknödel 8 13


3. Usage of CHARINDEX to products which contains 'sauce' keyword.

SQL Server Query 3

            
SELECT ProductID, ProductName   
FROM Products
WHERE CHARINDEX('Sauce', ProductName) > 0;

Create SQL query with SqlQueryBuilder 3

            
var (sql3, parameters3) = new SqlQueryBuilder()  
.Select().Columns("ProductID", "ProductName")
.From("Products")
.Where(new Where(new CHARINDEX("Sauce", new Column("ProductName")), SQLComparisonOperators.GREATER_THAN, 0))
.Build();

Query build by SqlQueryBuilder 3

            
SELECT ProductID,
       ProductName
FROM Products
WHERE CHARINDEX(@pMAIN_2507192009574298050, ProductName, 1) > @pMAIN_2507192009574298051;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192009574298050 Sauce
@pMAIN_2507192009574298051 0

Query Results 3:

  ProductID ProductName
1 65 Louisiana Fiery Hot Pepper Sauce
2 8 Northwoods Cranberry Sauce


4. Usage of CHARINDEX to find company name which contains space.

SQL Server Query 4

            
SELECT CustomerID, CompanyName,   
SUBSTRING(CompanyName, 1, CHARINDEX(' ', CompanyName) - 1) AS FirstWord
FROM Customers
WHERE CHARINDEX(' ', CompanyName) > 0; -- Only show companies with at least one space

Create SQL query with SqlQueryBuilder 4

            
var (sql4, parameters4) = new SqlQueryBuilder()  
.Select().Columns("CustomerID", "CompanyName")
.Column(new SUBSTRING(new Column("CompanyName"), 1, new CHARINDEX(" ", new Column("CompanyName"), 1).AddArithmatic(new Arithmatic().Subtract(-1))), "FirstWord")
.From("Customers")
.Where(new Where(new CHARINDEX(" ", new Column("CompanyName")), SQLComparisonOperators.GREATER_THAN, 0))
.Build();

Query build by SqlQueryBuilder 4

            
SELECT CustomerID,
       CompanyName,
       SUBSTRING(CompanyName, @pMAIN_2507192009574332200, CHARINDEX(@pMAIN_2507192009574332201, CompanyName, 1) - @pMAIN_2507192009574332202) AS FirstWord
FROM Customers
WHERE CHARINDEX(@pMAIN_2507192009574332203, CompanyName, 1) > @pMAIN_2507192009574332204;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192009574332200 1
@pMAIN_2507192009574332201
@pMAIN_2507192009574332202 -1
@pMAIN_2507192009574332203
@pMAIN_2507192009574332204 0

Query Results 4:

  CustomerID CompanyName FirstWord
1 ALFKI Alfreds Futterkiste Alfreds F
2 ANATR Ana Trujillo Emparedados y helados Ana T
3 ANTON Antonio Moreno Taquería Antonio M
4 AROUT Around the Horn Around t
5 BERGS Berglunds snabbköp Berglunds s
6 BLAUS Blauer See Delikatessen Blauer S
7 BLONP Blondesddsl père et fils Blondesddsl p
8 BOLID Bólido Comidas preparadas Bólido C
9 BONAP Bon app' Bon a
10 BOTTM Bottom-Dollar Markets Bottom-Dollar M
11 BSBEV B's Beverages B's B
12 CACTU Cactus Comidas para llevar Cactus C
13 CENTC Centro comercial Moctezuma Centro c
14 CHOPS Chop-suey Chinese Chop-suey C
15 COMMI Comércio Mineiro Comércio M
16 CONSH Consolidated Holdings Consolidated H
17 WANDK Die Wandernde Kuh Die W
18 DRACD Drachenblut Delikatessen Drachenblut D
19 DUMON Du monde entier Du m
20 EASTC Eastern Connection Eastern C
21 ERNSH Ernst Handel Ernst H
22 FAMIA Familia Arquibaldo Familia A
23 FISSA FISSA Fabrica Inter. Salchichas S.A. FISSA F
24 FOLIG Folies gourmandes Folies g
25 FOLKO Folk och fä HB Folk o
26 FRANR France restauration France r
27 FRANS Franchi S.p.A. Franchi S
28 FURIB Furia Bacalhau e Frutos do Mar Furia B
29 GALED Galería del gastrónomo Galería d
30 GODOS Godos Cocina Típica Godos C
31 GOURL Gourmet Lanchonetes Gourmet L
32 GREAL Great Lakes Food Market Great L
33 HANAR Hanari Carnes Hanari C
34 HUNGC Hungry Coyote Import Store Hungry C
35 HUNGO Hungry Owl All-Night Grocers Hungry O
36 ISLAT Island Trading Island T
37 KOENE Königlich Essen Königlich E
38 LACOR La corne d'abondance La c
39 LAMAI La maison d'Asie La m
40 LAUGB Laughing Bacchus Wine Cellars Laughing B
41 LAZYK Lazy K Kountry Store Lazy K
42 LEHMS Lehmanns Marktstand Lehmanns M
43 LETSS Let's Stop N Shop Let's S
44 LONEP Lonesome Pine Restaurant Lonesome P
45 MAGAA Magazzini Alimentari Riuniti Magazzini A
46 MAISD Maison Dewey Maison D
47 MEREP Mère Paillarde Mère P
48 MORGK Morgenstern Gesundkost Morgenstern G
49 OCEAN Océano Atlántico Ltda. Océano A
50 OLDWO Old World Delicatessen Old W
51 OTTIK Ottilies Käseladen Ottilies K
52 PARIS Paris spécialités Paris s
53 PERIC Pericles Comidas clásicas Pericles C
54 PICCO Piccolo und mehr Piccolo u
55 PRINI Princesa Isabel Vinhos Princesa I
56 QUEDE Que Delícia Que D
57 QUEEN Queen Cozinha Queen C
58 RANCH Rancho grande Rancho g
59 RATTC Rattlesnake Canyon Grocery Rattlesnake C
60 REGGC Reggiani Caseifici Reggiani C
61 RICAR Ricardo Adocicados Ricardo A
62 RICSU Richter Supermarkt Richter S
63 ROMEY Romero y tomillo Romero y
64 SANTG Santé Gourmet Santé G
65 SAVEA Save-a-lot Markets Save-a-lot M
66 SEVES Seven Seas Imports Seven S
67 SIMOB Simons bistro Simons b
68 SPECD Spécialités du monde Spécialités d
69 SPLIR Split Rail Beer & Ale Split R
70 SUPRD Suprêmes délices Suprêmes d
71 THEBI The Big Cheese The B
72 THECR The Cracker Box The C
73 TOMSP Toms Spezialitäten Toms S
74 TORTU Tortuga Restaurante Tortuga R
75 TRADH Tradição Hipermercados Tradição H
76 TRAIH Trail's Head Gourmet Provisioners Trail's H
77 VICTE Victuailles en stock Victuailles e
78 VINET Vins et alcools Chevalier Vins e
79 WARTH Wartian Herkku Wartian H
80 WELLI Wellington Importadora Wellington I
81 WHITC White Clover Markets White C
82 WILMK Wilman Kala Wilman K
83 WOLZA Wolski Zajazd Wolski


5. Usage of CHARINDEX to find last name of employees having 'e' character.

SQL Server Query 5

            
SELECT EmployeeID, FirstName, LastName   
FROM Employees
WHERE CHARINDEX('e', LastName COLLATE Latin1_General_CI_AI) > 0;

Create SQL query with SqlQueryBuilder 5

            
var (sql5, parameters5) = new SqlQueryBuilder()  
.Select().Columns("EmployeeID", "FirstName", "LastName")
.From("Employees")
.Where(new Where(new CHARINDEX("e", new Column("LastName", Collate.Latin1_General_CI_AI)).GreaterThan(0)))
.Build();

Query build by SqlQueryBuilder 5

            
SELECT EmployeeID,
       FirstName,
       LastName
FROM Employees
WHERE CHARINDEX(@pMAIN_2507192009574369860, LastName COLLATE Latin1_General_CI_AI, 1) > @pMAIN_2507192009574369861;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192009574369860 e
@pMAIN_2507192009574369861 0

Query Results 5:

  EmployeeID LastName FirstName
1 2 Fuller Andrew
2 3 Leverling Janet
3 4 Peacock Margaret


6. Usage of CHARINDEX to find ampersand in category name.

SQL Server Query 6

            
SELECT CategoryName,   
CASE WHEN CHARINDEX('&', CategoryName) > 0
THEN 'Contains Ampersand'
ELSE 'No Ampersand' END AS AmpersandCheck
FROM Categories;

Create SQL query with SqlQueryBuilder 6

            
var (sql6, parameters6) = new SqlQueryBuilder()  
.Select().Columns("CategoryName")
.Column(new CASE()
.When(new CHARINDEX("&", new Column("CategoryName")).Equale(0))
.Then("Contains Ampersand")
.Else("No Ampersand"), "AmpersandCheck")
.From("Categories")
.Build();

Query build by SqlQueryBuilder 6

            
SELECT CategoryName,
       CASE WHEN CHARINDEX(@pMAIN_2507192009575393370, CategoryName, 1) = @pMAIN_2507192009575393371 THEN @pMAIN_2507192009575393372 ELSE @pMAIN_2507192009575393373 END AS AmpersandCheck
FROM Categories;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192009575393370 &
@pMAIN_2507192009575393371 0
@pMAIN_2507192009575393372 Contains Ampersand
@pMAIN_2507192009575393373 No Ampersand

Query Results 6:

  CategoryName AmpersandCheck
1 Beverages Contains Ampersand
2 Condiments Contains Ampersand
3 Confections Contains Ampersand
4 Dairy Products Contains Ampersand
5 Grains/Cereals Contains Ampersand
6 Meat/Poultry Contains Ampersand
7 Produce Contains Ampersand
8 Seafood Contains Ampersand