Funzione sql server charindex

Funzione sql server charindex
Le stringhe sono elementi fondamentali nel mondo dello sviluppo. Anche nei database, ci imbattiamo in istanze in cui dobbiamo eseguire operazioni di stringa.

Un'utile funzione SQL Server è la funzione CharIndex (). Questa funzione restituisce la posizione dell'indice di una sottostringa.

Questa guida esaminerà come utilizzare la funzione Charindex per cercare una sottostringa specificata.

Uso di base

Abbiamo usato principalmente la funzione Charindex per individuare/cercare una sottostringa da una posizione specifica. La funzione restituisce la posizione della sottostringa se trovata e un numero intero se non trovato.

La sintassi della funzione è come:

Charindex (substring, main_string [, start_location]);

Argomenti della funzione e valore di ritorno

La funzione Charindex accetta 3 argomenti:

  1. sottostringa - si riferisce alla sottostringa che la funzione cercherà.
  2. main_string - si riferisce alla stringa letterale, all'espressione o alla colonna da cui cercare la sottostringa specificata.
  3. start_location - questo specifica la posizione dove cercare la sottostringa specificata. La posizione iniziale è un numero intero, un grande numero intero o un'espressione che si traduce in un numero intero o grande intero.

Il parametro start_location è facoltativo. Se il valore di start_position non è specificato, la ricerca inizierà all'inizio della stringa.

Il Charindex restituisce un INT per impostazione predefinita. Tuttavia, se la sottostringa è di tipo nvchar (max), varbinary (max) o varchar (max), la funzione restituisce un tipo di bigint.

SQL Server Charindex () Esempi

Diamo un'occhiata ad alcuni esempi di utilizzo della funzione Charindex () in SQL Server.

Esempio 1:

L'esempio seguente cerca una sottostringa semplice.

Seleziona charindEx ('sql', 'database: sql server') come index_position;

La query sopra dovrebbe restituire la posizione iniziale della sottostringa abbinata.

Un output di esempio è come mostrato:

indice_position
--------------
11

Nota: la posizione iniziale restituita è basata su 1 e non 0 basato su 0.

Esempio 2

L'esempio seguente mostra che la posizione iniziale è basata su 1.

Seleziona charindEx ("linux", "linuxhint") come index_position;

La posizione risultante è 1, come mostrato di seguito:

indice_position
--------------
1

Esempio 3:

La funzione Charindex è insensibile al caso. Ciò significa che corrisponderà a una sottostringa anche se non condividono un involucro simile.

Seleziona charindEx ("linux", "linuxhint") come index_position;

La query restituisce ancora la prima posizione corrispondente della sottostringa cercata.

indice_position
--------------
1

Esempio 4:

Supponiamo di voler eseguire una ricerca sensibile al caso utilizzando la funzione Charindex? Per fare ciò, puoi usare la raccolta per specificare la raccolta target.

Un esempio è come mostrato:

Seleziona charindEx ('Linux', 'LinuxHint' collegare latin1_General_cs_as_ks_ws) come index_position;

La query sopra restituirà un numero intero 0 in quanto non esiste una sottostringa corrispondente.

indice_position
--------------
0

Esempio 5:

Come abbiamo detto in precedenza, è possibile specificare il valore di start_position per impostare l'inizio della posizione di ricerca.

Ad esempio, la query di seguito imposta la posizione di avvio come 10.

Seleziona Charindex ("Charindex", "SQL Server Charindex Tutorial", 10) come index_Position;

Nel nostro esempio, la prima corrispondenza della sottostringa si trova nella posizione 12.

indice_position
--------------
12

Se impostiamo la posizione di avvio dopo la prima partita della sottostringa, la funzione restituirà 0 in quanto non ci sono altri casi di corrispondenza.

Seleziona Charindex ("Charindex", "SQL Server Charindex Tutorial", 13) come index_Position;

Il valore di ritorno è come:

indice_position
--------------
0

Conclusione

In questo articolo, hai capito come utilizzare la funzione charindEx () in SQL Server. Questa funzione consente di cercare una sottostringa e restituire la posizione del primo caso di corrispondenza.

Grazie per aver letto!