CHARINDEX (Transact-SQL)
Restituisce il punto iniziale dell'espressione specificata in una stringa di caratteri.
Convenzioni della sintassi Transact-SQL
Sintassi
CHARINDEX ( expression1 ,expression2 [ , start_location ] )
Argomenti
- expression1
Espressione che include la sequenza di caratteri che si desidera trovare. L'espressione expression1 appartiene alla categoria dei tipi di dati stringa di caratteri.
- expression2
Espressione, in genere una colonna, in cui viene eseguita la ricerca della sequenza specificata. L'espressione expression2 appartiene alla categoria dei tipi di dati stringa di caratteri.
- start_location
Posizione da cui iniziare la ricerca di expression1 in expression2. Se start_location viene omesso, è un numero negativo oppure è uguale a zero, la ricerca viene avviata all'inizio di expression2. start_location può essere di tipo bigint.
Tipi restituiti
bigint se expression2 è di tipo varchar(max), nvarchar(max) o varbinary(max). In caso contrario, è di tipo int.
Osservazioni
Se solo a una delle due espressioni expression1 e expression2 è associato un tipo di dati Unicode (nvarchar o nchar), l'altra espressione viene convertita in un tipo di dati Unicode. Non è possibile utilizzare CHARINDEX con i tipi di dati text, ntext e image.
Se expression1 o expression2 è NULL, quando il livello di compatibilità del database è maggiore o uguale a 70, CHARINDEX restituisce NULL. Se il livello di compatibilità del database è minore o uguale a 65, CHARINDEX restituisce NULL solo quando expression1 e expression2 sono entrambe NULL.
Se l'espressione expression1 non viene individuata in expression2, CHARINDEX restituisce 0.
CHARINDEX esegue confronti in base alle regole di confronto dell'input. Per eseguire un confronto in una regola di confronto specificata, è possibile utilizzare COLLATE per applicare una regola di confronto esplicita all'input.
La posizione di inizio restituita è in base 1 e non in base 0.
Esempi
Nell'esempio di codice seguente viene restituita la posizione in corrispondenza della quale inizia la sequenza di caratteri bicycle
nella colonna DocumentSummary
della tabella Document
.
USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO
Set di risultati:
-----------
48
Nell'esempio seguente viene utilizzato il parametro facoltativo start_location per avviare la ricerca di bicycle
dal quinto carattere della colonna DocumentSummary
.
USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary, 5)
FROM Production.Document
WHERE DocumentID = 3;
GO
Set di risultati:
-----------
48
(1 row(s) affected)
Nell'esempio seguente viene illustrato il set di risultati ottenuto quando l'espressione expression1 non viene individuata in expression2.
USE AdventureWorks;
GO
SELECT CHARINDEX('bike', DocumentSummary)
FROM Production.Document
WHERE DocumentID =6;
GO
Set di risultati:
-----------
0
(1 row(s) affected)
Nell'esempio seguente viene utilizzata la funzione COLLATE
.
USE tempdb;
GO
SELECT CHARINDEX ( 'Test', 'Das ist ein Test' COLLATE Latin1_General_BIN);
GO
Vedere anche
Riferimento
+ (concatenamento di stringhe) (Transact-SQL)
Funzioni per i valori stringa (Transact-SQL)