Sostituisci una stringa in SQL

Sostituisci Una Stringa In Sql



I dati di testo o le stringhe, come li chiamano gli sviluppatori, rappresentano un elemento fondamentale per qualsiasi programma funzionale. Questo non è diverso quando si tratta di archiviare i dati. Quasi tutti i database contengono una qualche forma di informazione di testo come nomi, registri, ecc.

Pertanto, la manipolazione delle stringhe è un compito comune che implica la manipolazione e la trasformazione dei valori delle stringhe in un formato specifico.

Una delle funzioni più potenti in SQL che si occupa delle operazioni sulle stringhe è la funzione REGEXP_REPLACE(). Questa funzione ci consente di eseguire la ricerca e la sostituzione basata su espressioni regolari. Se hai familiarità con le espressioni regolari, sai quanto potente può essere questa funzione.







In questo tutorial impareremo come utilizzare questa funzione per cercare e sostituire le stringhe nel database SQL.



SQL REGEXP_REPLACE

SQL REGEXP_REPLACE() è una funzione che ci consente di eseguire la corrispondenza e la sostituzione di modelli basati su espressioni regolari all'interno di una determinata stringa.



L'espressione regolare o regex è un modello impostato e dei segnaposto che ci consentono di abbinare e manipolare le stringhe o sottostringhe che seguono uno schema specifico.





È bene tenere presente che ciascun motore di database potrebbe implementare leggermente la sintassi e la funzionalità della funzione.

Possiamo tuttavia esprimere la sua sintassi nel modo seguente:



REGEXP_REPLACE(string_input, modello, sostituzione [, flag])

I parametri della funzione sono espressi come segue:

  1. input_string – Specifica la stringa all'interno della quale desideriamo cercare e sostituire.
  2. Pattern – Specifica il pattern dell'espressione regolare che vogliamo far corrispondere all'interno della stringa di input.
  3. Sostituzione: specifica la stringa che sostituisce le sottostringhe corrispondenti.
  4. Flag: una serie di flag facoltativi che possono aiutare a modificare la funzionalità dell'espressione regolare. Ad esempio, possiamo abilitare la ricerca globale, la corrispondenza senza distinzione tra maiuscole e minuscole, ecc. Questa funzionalità varia a seconda del motore del database.

Esempi:

Per comprendere meglio il funzionamento di questa funzione, vediamo alcuni esempi su come utilizzarla.

Esempio 1: utilizzo di base

Supponiamo di avere una tabella contenente le informazioni su un dipendente, come mostrato nel seguente output di esempio:

Consideriamo il caso in cui vogliamo sostituire l'occorrenza della stringa 'Charlie' con 'Matthew'. Possiamo utilizzare la query nel modo seguente:

SELEZIONARE

REGEXP_REPLACE(nome, 'Charlie', 'Matthew') AS nuovo_nome

DA

dipendenti;

L'esempio fornito dimostra una ricerca e sostituzione di base per trovare la stringa 'Charlie' dalla colonna 'first_name' e sostituirla con 'Matthew'.

Produzione:

Esempio 2: sostituzione senza distinzione tra maiuscole e minuscole

In alcuni casi, potresti voler eseguire una ricerca senza distinzione tra maiuscole e minuscole. Ciò significa che la funzione esaminerà solo il contenuto della stringa e non l'involucro effettivo delle lettere alfanumeriche.

In tal caso, utilizziamo la 'i' come flag della funzione come segue:

SELECT REGEXP_REPLACE(descrizione_prodotto, Samsung, Apple, 'i') COME modificato

DA prodotti;

Impostando il flag su 'i', la funzione corrisponde a tutte le parole che corrispondono a 'Samsung', indipendentemente dalle maiuscole e minuscole.

Conclusione

In questo esempio, abbiamo esplorato come utilizzare e lavorare con la funzione REGEXP_REPLACE() per eseguire una ricerca e sostituzione basata su modelli di espressioni regolari.