Condividi tramite


CHARINDEX (Transact-SQL)

Restituisce il punto iniziale dell'espressione specificata in una stringa di caratteri.

Icona di collegamento a un argomentoConvenzioni 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)

Guida in linea e informazioni

Assistenza su SQL Server 2005