Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
1 sur 1 ont trouvé cela utile - Évaluez ce sujet

CHARINDEX (Transact-SQL)

Recherche une autre expression dans une expression et retourne sa position de départ, le cas échéant.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL


CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] ) 
expressionToFind

Expression de caractères qui contient la séquence à rechercher. expressionToFind est limitée à 8 000 caractères.

expressionToSearch

Expression de caractères à rechercher.

start_location

Expression integer ou bigint à laquelle démarre la recherche. Si la valeur de start_location n'est pas spécifiée, il s'agit d'un nombre négatif ou si elle est égale à zéro, la recherche commence au début de expressionToSearch.

Type bigint si expressionToSearch est du type de données varchar(max), nvarchar(max) ou varbinary(max) ; sinon int.

Si un des arguments expressionToFind ou expressionToSearch est d'un type de données Unicode (nvarchar ou nchar) et que l'autre ne l'est pas, ce dernier est systématiquement converti dans un type de données Unicode. La fonction CHARINDEX ne peut pas être utilisée avec les types de données text, ntext et image.

Si expressionToFind ou expressionToSearch est NULL, CHARINDEX retourne NULL.

Si l'argument expressionToFind est introuvable dans l'argument expressionToSearch, CHARINDEX retourne 0.

CHARINDEX effectue des comparaisons basées sur le classement de l'entrée. Pour exécuter une comparaison selon un classement spécifié, vous pouvez utiliser COLLATE pour appliquer à l'entrée un classement explicite.

La position de départ retournée est basée sur la valeur 1, et non sur la valeur 0.

0x0000 (char(0)) est un caractère indéfini dans les classements Windows et ne peut pas être inclus dans CHARINDEX.

Caractères supplémentaires (paires de substitution)

Lors de l'utilisation de classements SC, start_location et la valeur de retour comptent les paires de substitution comme s'il s'agissait d'un caractère, et non pas de deux. Pour plus d'informations, consultez Prise en charge d'Unicode et du classement.

A.Retour de la position de départ d'une expression

L'exemple suivant retourne la position initiale de la séquence de caractères bicycle dans la colonne DocumentSummary de la table Document.

USE AdventureWorks2012;
GO
DECLARE @document varchar(64);

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.';
SELECT CHARINDEX('bicycle', @document);
GO

Voici l'ensemble des résultats.

----------- 
48          

B.Recherche à partir d'une position spécifique

L'exemple de code suivant utilise le paramètre facultatif start_location pour commencer la recherche de vital à compter du cinquième caractère de la colonne DocumentSummary.

USE AdventureWorks2012;
GO
DECLARE @document varchar(64);

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.';
SELECT CHARINDEX('vital', @document, 5);
GO

Voici l'ensemble des résultats.

----------- 
16          

(1 row(s) affected)

C.Recherche d'une expression inexistante

L'exemple suivant illustre le jeu de résultats obtenu lorsque l'argument expressionToFind est introuvable dans l'argument expressionToSearch.

USE AdventureWorks2012;
GO
DECLARE @document varchar(64);

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.';
SELECT CHARINDEX('bike', @document);
GO

Voici l'ensemble des résultats.

-----------

0

(1 row(s) affected)

D.Recherche respectant la casse

L'exemple suivant effectue une recherche qui respecte la casse pour la chaîne 'TEST' dans 'Das ist ein Test'.

USE tempdb;
GO
--perform a case sensitive search
SELECT CHARINDEX ( 'TEST',
       'Das ist ein Test'
       COLLATE Latin1_General_CS_AS);

Voici l'ensemble des résultats.

-----------

0

L'exemple suivant effectue une recherche qui respecte la casse de la chaîne 'Test' dans 'Das ist ein Test'.


USE tempdb;
GO
SELECT CHARINDEX ( 'Test',
       'Das ist ein Test'
       COLLATE Latin1_General_CS_AS);

Voici l'ensemble des résultats.

-----------

13

E.Recherche ne respectant pas la casse

L'exemple suivant effectue une recherche qui ne respecte pas la casse de la chaîne 'TEST' dans 'Das ist ein Test'.


USE tempdb;
GO
SELECT CHARINDEX ( 'TEST',
       'Das ist ein Test'
       COLLATE Latin1_General_CI_AS)
GO

Voici l'ensemble des résultats.

-----------

13

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft. Tous droits réservés.