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
|