Articles

SQL Server PATINDEX function

Riepilogo: in questo tutorial, hai imparato come utilizzare la funzione SQL Server PATINDEX() per trovare la posizione di un pattern in una stringa.

SQL Server PATINDEX() overview

La funzionePATINDEX() restituisce la posizione della prima occorrenza di un pattern in una stringa. La sintassi della funzione PATINDEX() è la seguente:

PATINDEX ( '%pattern%' , input_string )
Code language: SQL (Structured Query Language) (sql)

La funzionePATINDEX() accetta due argomenti:

  • pattern è un’espressione di carattere da trovare. Può contenere caratteri jolly come %e'_' nel modello. I significati dei caratteri jolly sono gli stessi utilizzati con l’operatoreLIKE.
  • input_string è una stringa di caratteri in cui il modello da cercare.

IlPATINDEX() restituisce un numero intero che specifica la posizione della prima occorrenza delpattern nelinput_string, o lo zero del modello non trovato. La funzionePATINDEX() restituisce NULL sepattern oinput_string è NULL.

Si noti chePATINDEX() cerca il modello in base alle regole di confronto dell’input. Se si desidera utilizzare una collazione specifica, è possibile utilizzare esplicitamente la clausolaCOLLATE.

SQL Server PATINDEX() esempi di funzioni

Prendiamo alcuni esempi di utilizzo della funzionePATINDEX().

A) SQL Server PATINDEX () esempio semplice

Questo esempio restituisce la posizione iniziale della sottostringa 'ern' nella stringa 'SQL Pattern Index':

SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Code language: SQL (Structured Query Language) (sql)

Ecco l’output:

position-----------9(1 row affected)

B) Utilizzo di SQL Server QUERY() con multipli esempio

in Questo esempio viene utilizzato % e _ caratteri jolly per trovare la posizione in cui il pattern 'f' seguito da due caratteri e 'ction' inizia nel 'SQL Server String Function' stringa:

SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
Code language: SQL (Structured Query Language) (sql)

l’output è Il seguente:

Position-----------19(1 row affected)

C) Utilizzo di SQL Server QUERY() funzione con la colonna della tabella di esempio

in Questo esempio viene individuata la posizione della prima occorrenza del pattern 2018 in valori di product_name colonna production.products tabella dal database di esempio.

SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

La seguente immagine mostra l’uscita parziale:

SQL Server QUERY Funzione di Esempio

In questo tutorial, avete imparato come utilizzare SQL Server PATINDEX() funzione per trovare la posizione della prima occorrenza di un modello in una stringa.