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_2512060922574026790, CompanyName, 1) AS PositionOf_er
FROM Customers
WHERE CHARINDEX(@pMAIN_2512060922574026791, CompanyName, 1) > @pMAIN_2512060922574026792;
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060922574026790 |
er |
| @pMAIN_2512060922574026791 |
er |
| @pMAIN_2512060922574026792 |
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_2512060922574082450, ProductName, 1) AS FirstSpacePosition,
CHARINDEX(@pMAIN_2512060922574082451, ProductName, CHARINDEX(@pMAIN_2512060922574082452, ProductName, 1) + @pMAIN_2512060922574082453) AS SecondSpacePosition
FROM Products
WHERE ProductName LIKE @pMAIN_2512060922574082454;
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060922574082450 |
|
| @pMAIN_2512060922574082451 |
|
| @pMAIN_2512060922574082452 |
|
| @pMAIN_2512060922574082453 |
1 |
| @pMAIN_2512060922574082454 |
% % % |
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_2512060922574154650, ProductName, 1) > @pMAIN_2512060922574154651;
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060922574154650 |
Sauce |
| @pMAIN_2512060922574154651 |
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_2512060922574170770, CHARINDEX(@pMAIN_2512060922574170771, CompanyName, 1) - @pMAIN_2512060922574170772) AS FirstWord
FROM Customers
WHERE CHARINDEX(@pMAIN_2512060922574170773, CompanyName, 1) > @pMAIN_2512060922574170774;
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060922574170770 |
1 |
| @pMAIN_2512060922574170771 |
|
| @pMAIN_2512060922574170772 |
-1 |
| @pMAIN_2512060922574170773 |
|
| @pMAIN_2512060922574170774 |
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_2512060922574204780, LastName COLLATE Latin1_General_CI_AI, 1) > @pMAIN_2512060922574204781;
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060922574204780 |
e |
| @pMAIN_2512060922574204781 |
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_2512060922575204440, CategoryName, 1) = @pMAIN_2512060922575204441 THEN @pMAIN_2512060922575204442 ELSE @pMAIN_2512060922575204443 END AS AmpersandCheck
FROM Categories;
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060922575204440 |
& |
| @pMAIN_2512060922575204441 |
0 |
| @pMAIN_2512060922575204442 |
Contains Ampersand |
| @pMAIN_2512060922575204443 |
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
|