PostgreSQL SUBSTRING() Funzione con esempio Regex

โšก Riepilogo intelligente

PostgreSQL SOTTOSTRINGA extracrestituisce parte di una stringa, utilizzando una posizione iniziale e una lunghezza opzionali, e confronta anche il testo con un'espressione regolare POSIX per estrarre modelli come numeri o codici.

  • ๐Ÿ“‹ Sintassi: substring( stringa [da inizio] [per lunghezza] ) restituisce una porzione della stringa sorgente.
  • 1๏ธโƒฃ Posizioni: Le posizioni dei caratteri iniziano da 1 e, omettendo la lunghezza, la lettura avviene fino alla fine della stringa.
  • ๐Ÿ”Ž Regex: SUBSTRING(string FROM pattern) es.tracts il primo testo corrispondente a un'espressione regolare POSIX.
  • ๐Ÿงฎ Grouping: Un gruppo racchiuso tra parentesi nel modello restituisce solo la parte della corrispondenza catturata.
  • ๏ธ pgAdmin: All'interno dell'editor di query di pgAdmin, ogni query di sottostringa viene eseguita allo stesso modo.
  • ๐Ÿค– Aiuto tramite IA: Gli assistenti IA generano e spiegano modelli regex per un'accurata estrazione di sottostringhetraczione.

PostgreSQL Funzione SUBSTRING con espressioni regolari

Cosa รจ PostgreSQL Sottostringa?

Migliori PostgreSQL La funzione substring ti aiuta atract e restituisce parte di una stringa. Invece di restituire l'intera stringa, restituisce solo una parte di essa, il che รจ utile per troncare i codici e leggere campi a larghezza fissa.

Sintassi

Migliori PostgreSQL la funzione sottostringa assume la seguente sintassi:

substring( string [from starting_position] [for length] )

Scheda Sintetica

I seguenti parametri vengono utilizzati con la funzione substring:

stringa La stringa di origine il cui tipo di dati รจ varchar, char, string e cosรฌ via.
posizione di partenza Un parametro opzionale. Indica il luogo in cui l'extracL'elaborazione della stringa avrร  inizio. Se ometti questo parametro, l'extracLa funzione inizia dalla posizione 1, che รจ il primo carattere della stringa.
lunghezza Un parametro opzionale. Indica il numero di caratteri da esprimeretracestratto dalla stringa. Se ometti questo parametro, la funzione extracts dalla posizione iniziale alla fine della stringa.

Esempi

In questo esempio, vogliamo estract i primi 4 caratteri della parola Guru99:

SELECT substring('Guru99' for 4);

Il comando restituirร  quanto segue:

PostgreSQL Sottostringa

Non abbiamo specificato la posizione di partenza, quindi l'extraczione della sottostringa iniziata in posizione 1. Quattro caratteri sono stati espressitracted per restituire il risultato sopra.

L'esempio seguente mostra come specificare la posizione iniziale:

SELECT substring('Guru99' from 1 for 4);

Il comando restituirร  quanto segue:

PostgreSQL Sottostringa

Abbiamo specificato che l'extracla sottostringa deve iniziare dalla posizione 1 e devono essere espressi 4 caratteritracted.

Lasciateci esprimeretract 99 dalla stringa Guru99:

SELECT substring('Guru99' from 5);

Il comando restituirร  quanto segue:

PostgreSQL Sottostringa

Abbiamo specificato la posizione iniziale come 5. Poichรฉ il numero di caratteri da esprimeretracted non รจ stato specificato, l'extracla sequenza รจ arrivata fino alla fine della stringa.

Ecco un altro esempio:

SELECT substring('Guru99' from 5 for 2);

Il comando restituirร  quanto segue:

PostgreSQL Sottostringa

Abbiamo iniziato extraczione in posizione 5 e 2 caratteri sono stati espressitracted.

Considera la tabella dei libri riportata di seguito:

PostgreSQL Tabella del libro della sottostringa

Vogliamo farci un'idea approssimativa del nome di ogni libro. Possiamo esplicaretracsolo i primi 15 caratteri della colonna del nome della tabella:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Il comando restituirร  quanto segue:

PostgreSQL Risultato della sottostringa

Ora abbiamo un'idea approssimativa del nome di ogni libro.

Corrispondenza di sottostringhe con l'espressione regolare SQL

In PostgreSQL, puoi estracuna sottostringa che corrisponde a una specifica espressione regolare POSIX. In questo caso, la funzione substring utilizza la seguente sintassi:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Ecco una spiegazione dei parametri di cui sopra. La stringa รจ la stringa sorgente, la cui tipo di dati puรฒ essere varchar, char, string e cosรฌ via. matching_pattern รจ il modello utilizzato per la ricerca nella stringa.

Esempi

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Il comando restituirร  quanto segue:

Corrispondenza di sottostringhe con l'espressione regolare SQL

La nostra stringa di input รจ La tua etร  รจ 22. Nel pattern, cerchiamo un modello numerico; quando viene trovato, la funzione sottostringa extracha solo due caratteri.

Come trovare le sottostringhe usando pgAdmin

Vediamo ora come eseguire queste azioni utilizzando pgAdmin. Le query che non richiedono un database possono essere eseguite direttamente dalla finestra dell'editor di query. Basta procedere come segue:

Passo 1) Accedi al tuo account pgAdmin.

Passo 2) In pgAdmin, fai clic sull'icona Strumento di query.

Sottostringhe corrispondenti utilizzando pgAdmin

Verrร  aperta la finestra dell'editor di query.

Passo 3) Digita la seguente query nella finestra dell'editor.

SELECT substring('Guru99' for 4);

Passo 4) Fare clic sull'icona Esegui per eseguire la query.

Sottostringhe corrispondenti utilizzando pgAdmin

Passo 5) L'esecuzione della query รจ terminata. Dovrebbe restituire quanto segue:

Sottostringhe corrispondenti utilizzando pgAdmin

Esempio 2:

SELECT substring('Guru99' from 1 for 4);

Dovrebbe restituire quanto segue:

Sottostringhe corrispondenti utilizzando pgAdmin

Ecco il prossimo esempio:

SELECT substring('Guru99' from 5);

Dovrebbe restituire quanto segue:

Sottostringhe corrispondenti utilizzando pgAdmin

Esempio 3:

SELECT substring('Guru99' from 5 for 2);

Dovrebbe restituire quanto segue:

Sottostringhe corrispondenti utilizzando pgAdmin

Ora eseguiamo l'esempio utilizzando la tabella Book del database Demo:

Passo 1) Accedi al tuo account pgAdmin.

Passo 2) Dalla barra di navigazione a sinistra, fai clic su Database, quindi su Demo.

Sottostringhe corrispondenti utilizzando pgAdmin

Passo 3) Digita la query nell'editor di query:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Passo 4) Fare clic sul pulsante Esegui.

Sottostringhe corrispondenti utilizzando pgAdmin

Dovrebbe restituire quanto segue:

PostgreSQL Risultato della sottostringa

Ora abbiamo un'idea di base del nome di ogni libro.

Corrispondenza di sottostringhe con l'espressione regolare SQL

Per ottenere lo stesso risultato su pgAdmin, procedere come segue:

Passo 1) Accedi al tuo account pgAdmin.

Passo 2) Fare clic sull'icona Strumento di query.

Corrispondenza di sottostringhe con l'espressione regolare SQL

Verrร  aperta la finestra dell'editor di query.

Passo 3) Digita la seguente query nella finestra dell'editor.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Passo 4) Fare clic sull'icona Esegui per eseguire la query.

Corrispondenza di sottostringhe con l'espressione regolare SQL

Dovrebbe restituire quanto segue:

Corrispondenza di sottostringhe con l'espressione regolare SQL

Scarica il database utilizzato in questo tutorial

DOMANDE FREQUENTI

SUBSTR รจ un alias abbreviato di SUBSTRING e restituisce una parte di una stringa. SUBSTRING supporta anche le parole chiave FROM e FOR standard di SQL, oltre alle espressioni regolari POSIX, mentre SUBSTR accetta solo argomenti di posizione e lunghezza separati da virgole.

PostgreSQL La funzione SUBSTRING รจ basata sull'indice 1, quindi il primo carattere si trova in posizione 1, non 0. Passando come posizione iniziale 1, la funzione restituisce la stringa a partire dal suo primo carattere.

Quando il pattern POSIX non corrisponde a nulla, SUBSTRING restituisce NULL anzichรฉ una stringa vuota. Verificare il risultato con IS NULL consente di gestire le righe in cui il pattern previsto non รจ presente.

Utilizza un'espressione regolare che catturi ciรฒ che segue il carattere. Ad esempio, SUBSTRING(email FROM '@(.*)') restituisce tutto ciรฒ che si trova dopo il simbolo @, fornendoti la parte del dominio di ciascun indirizzo email.

Utilizza SUBSTRING quando hai bisogno del primo testo corrispondente come valore semplice. Scegli regexp_matches() quando desideri che ogni corrispondenza o piรน gruppi di acquisizione vengano restituiti come array, poichรฉ SUBSTRING restituisce solo la prima corrispondenza.

Gli assistenti IA come GitHub Copilot trasformano una descrizione in linguaggio naturale in un modello POSIX, spiegano a cosa corrisponde ogni token e suggeriscono stringhe di test, riducendo cosรฌ i tentativi ed errori durante la creazione di espressioni di sottostringhe.tracinterrogazioni tion.

Sรฌ. Descrivi la parte di testo che desideri e l'assistente AI genererร  una chiamata SUBSTRING con le posizioni corrette o un'espressione regolare, che potrai eseguire e perfezionare all'interno di pgAdmin.

Sรฌ, la corrispondenza POSIX SUBSTRING รจ sensibile alle maiuscole/minuscole per impostazione predefinita. Per una corrispondenza indipendentemente dalle maiuscole/minuscole, รจ necessario convertire entrambi gli input in minuscolo, ad esempio SUBSTRING(lower(name) FROM lower(pattern)), in modo che le lettere maiuscole e minuscole vengano trattate allo stesso modo.

Riassumi questo post con: