Introduzione alle funzioni String comuni di SQL Server

Le funzioni String SQL integrate consentono di trovare e modificare i valori di testo, come i tipi di dati VARCHAR e CHAR, in SqlServer. Utilizzando queste funzioni è possibile modificare un valore di testo come cambiare “Smith, Joe” a “Joe Smith.”

Se non hai familiarità con le funzioni SQL, ti consiglio di guardare con l’introduzione alle funzioni integrate di SQL Server.

Per ottenere il massimo da questa e dalle altre nostre lezioni, assicurati di esercitarti usando gli esempi!,

Tutti gli esempi di questa lezione sono basati su Microsoft SQL Server Management Studio e il database AdventureWorks2012. È possibile iniziare a utilizzare questi strumenti gratuiti utilizzando la mia guida Per iniziare a utilizzare SQL Server.

Introduzione alle funzioni stringa di SQL Server

Le funzioni stringa t-SQL vengono utilizzate per manipolare o restituire informazioni sulle espressioni di testo come i tipi di dati CHAR e VARCHAR.

Ci sono molte funzioni stringa all’interno di SQL a vostra disposizione., Generalmente li classificherei come:

  • Posizione
  • Trasformazione
  • Set di caratteri
  • Soundex

Tutte le funzioni sono elencate nella pagina String Functions (Transact-SQL). Consiglierei di visitare quella pagina per conoscere ogni funzione.

Piuttosto che ribadire quel materiale, ci concentreremo sulle funzioni che ho visto in comunemente usate nel mondo degli affari.

Nelle seguenti tabelle ho classificato le funzioni e le ho codificate a colori. Il codice colore corrisponde al cappuccio probabile che si utilizzerebbe quella particolare funzione in un ambiente aziendale., Il verde è più probabile che venga utilizzato e il rosso meno.

Questa non è una scala rigorosa e tutte le funzioni hanno un uso in alcuni casi aziendali, ma volevo un modo per aiutarti a ridurre il campo a quelli più rilevanti.

Ecco il mio tentativo:

SQL Server String Funzioni – Funzioni Comunemente Usate in Verde

Funzioni utilizzate per individuare la Posizione

CHARINDEX

Il CHARINDEX funzione viene utilizzata per trovare la posizione di una stringa in un’altra., Questo può essere utile quando è necessario suddividere i dati da trattini o virgole.

La forma generale per la funzione CHARINDEX è

CHARRINDEX(value to find, value to search)

Dove il valore da trovare è uno o più caratteri che si desidera trovare nel valore da cercare.

Se viene trovato il valore, viene restituita la posizione iniziale. Se il valore non viene trovato, viene restituito 0 (zero).

Se il valore da trovare o il valore da cercare sono NULL, viene restituito NULL.

CHARINDEX in azione!,

LEN

La funzione LEN restituisce il numero di caratteri in una stringa.

Nell’esempio seguente puoi vedere che la lunghezza di “SQL Server” è 10.

Esempio della funzione LEN

La lunghezza è usata raramente da sola. Viene utilizzato principalmente in combinazione con altre funzioni, come SINISTRA e DESTRA.,

Funzioni utilizzate per trasformare le stringhe

SINISTRA e DESTRA

Le funzioni SINISTRA e DESTRA vengono utilizzate per restituire la parte iniziale o finale di una stringa.

LEFT restituirà i caratteri iniziali; mentre, RIGHT è usato per restituire i caratteri finali.

La forma generale per la funzione SINISTRA è

LEFT(value, length)

Dove value è la stringa con cui stai lavorando e length è il numero di caratteri che desideri restituire dall’inizio del valore.,

Esempio di funzione SINISTRA

Se la lunghezza è maggiore del numero di caratteri nel valore, viene restituita l’intera stringa.

SE la lunghezza è negativa viene generato un errore.

Se length o value sono NULL, viene restituito NULL.

La funzione stringa DESTRA funziona molto come SINISTRA, ma restituisce i caratteri finali rispetto all’inizio.

SELECT RIGHT(‘SQL Rocks!’,6)

Restituisce il valore ‘Rocks!,’

Supponiamo che il responsabile della produzione desideri un elenco distinto di tutti i prefissi dei numeri di prodotto. Come hai potuto restituire quella lista?

Se si guarda alla Produzione.Valore della colonna Product ProductNumber noterai che il prefisso è i primi due caratteri. Quindi, sapendo cosa facciamo ora sulla funzione di sinistra, la soluzione è un gioco da ragazzi!

Ecco cosa puoi scrivere:

SELECT DISTINCT LEFT(ProductNumber,2)FROM Production.Product

La funzione SINISTRA restituisce i primi due caratteri. Poiché stiamo usando l’operatore DISTICT, i risultati duplicati vengono eliminati dal risultato.

OK così ora il direttore di produzione sta diventando pazzo!, L’ultimo carattere del prefisso ProcuctNumber significa molto per lei. Vuole sapere quali sono quei valori distinti. Cosa possiamo fare per aiutare?

Possiamo usare SINISTRA e DESTRA insieme. Sappiamo già come ottenere la maggior parte dei caratteri a SINISTRA, ora tutto ciò che dobbiamo fare è prendere l’ultimo carattere da quel risultato e restituirlo come mostrato di seguito.

Funzione di nidificazione per restituire i caratteri.,

Ecco la query che puoi usare:

SELECT DISTINCT RIGHT(LEFT(ProductNumber,2),1)FROM Production.Product

Come altre funzioni puoi nidificare le funzioni delle stringhe. Basta ricordare che i risultati di una funzione possono essere utilizzati in un altro. Dovresti leggere queste espressioni dal ” dentro e fuori.”

SOTTOSTRINGA

La funzione SOTTOSTRINGA viene utilizzata per restituire caratteri da un’altra stringa.,

La forma generale della funzione SOTTOSTRINGA è

SUBSTRING(value, position, length)

Dove il valore è la stringa con cui stai lavorando, la posizione è il carattere per iniziare a restituire i caratteri e la lunghezza è il numero di caratteri da restituire.

Se la lunghezza è negativa viene restituito un errore.

Se la posizione o la lunghezza sono NULL, viene restituito NULL.

SOTTOSTRINGA Esempio

Per esempio,

SUBSTRING(‘SQL Server’,5,3)

restituisce ‘Ser’., È la sequenza di tre caratteri che iniziano in quinta posizione.

SOTTOSTRINGA è una forma generalizzata delle funzioni SINISTRA e DESTRA.

Credito extra-Mostra come SINISTRA e DESTRA possono essere utilizzati insieme per simulare SOTTOSTRINGA. Mostra la tua risposta nei commenti qui sotto.

LEFT (‘SQL Server‘, 4) e SUBSTRING (’SQL Server’, 1, 4) restituiscono entrambi i quattro caratteri iniziali.

DESTRA è un po ‘ più complicato!

RIGHT (‘SQL Server‘, 4) può essere scritto come SOTTOSTRINGA (’SQL Server’, 7, 4)

Che dice di iniziare dalla 7a posizione e quindi restituire i successivi quattro caratteri., La forma generale per questo, dal momento che non sempre conoscerai la lunghezza del valore, è

SUBSTRING(‘SQL Server’, LEN(‘SQL Server’)-4, 4)

Ecco un esempio usando le colonne SQL.

i Cui risultati sono

Risultati della SOTTOSTRINGA come SINISTRA e DESTRA

SUPERIORE e INFERIORE

La parte SUPERIORE e INFERIORE funzioni di stringa vengono utilizzate per restituire i valori i cui caratteri sono in ogni caso di superiore o inferiore, rispettivamente.,

La forma generale per la funzione SUPERIORE è

UPPER(value)

dove il valore è la stringa con cui stai lavorando.

Se il valore è NULL, viene restituito NULL.

La forma e il comportamento per LOWER sono simili.

Ecco un esempio di query:

Che restituisce

Esempi di utilizzo SUPERIORE e INFERIORE

SOSTITUIRE

SOSTITUIRE la funzione è particolarmente utile quando si desidera trovare uno o più caratteri in un pungiglione e sostituirli con altri personaggi., Un’applicazione comune consiste nel sostituire tutti i trattini ‘ ‘ ‘ con spazi.

Ecco la forma generale della funzione REPLACE

REPLACE (value, pattern, replacement)

Dove value è la stringa con cui lavorare, pattern è le porzioni della stringa che si desidera trovare e sostituire e replacement è il valore per sostituire il pattern.

Se uno qualsiasi dei parametri è NULL, SOSTITUISCI restituisce NULL.

Se il pattern non viene trovato, nulla viene sostituito e il valore viene restituito nella sua forma originale.,

Nel mondo degli affari ci si imbatte in dati provenienti da due sistemi separati, come i vostri sistemi e sistemi di un cliente o fornitore in cui i dati vengono trattati in modo diverso. Ciò può causare problemi, soprattutto quando si tratta di corrispondenza.

Una volta che il problema comune che ho visto si verifica con i numeri di parte. Considera le opere di avventura. All’interno dell’azienda, i numeri di parte sono formattati con trattini, come “AR-5381”; tuttavia, alcuni fornitori hanno sostituito i trattini con spazi come “AR 5381”.,

Prima di eseguire una corrispondenza di dati su larga scala, il team di produzione desidera fornire ai fornitori il nostro elenco di parti con i trattini sostituiti con spazi.

Ecco una query che potremmo eseguire per farlo:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-',' ') as SupplierProductNumberFROM Production.Product

E il risultato che possiamo fornire ai fornitori è:

Anche se non puoi avere un modello vuoto, e se ci pensi, non avrebbe troppo senso, puoi sostituire un modello con un modello vuoto.valore. Perché? Bene, una buona ragione è togliere i caratteri da una stringa.,

Nell’esempio ProductNumber, potrebbero esserci casi in cui vogliamo utilizzare il numero del prodotto senza trattini. Questa query potrebbe essere utilizzata in questo caso:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-','') as SupplierProductNumberFROM Production.Product

Si noti che due virgolette singole insieme come ” rappresenta una stringa vuota.

LTRIM e RTRIM

LTRIM e RTRIM vengono utilizzati per rimuovere gli spazi iniziali e finali della stringa.

LTRIM viene utilizzato per rimuovere gli spazi dall’inizio della stringa; mentre RTRIM rimuove gli spazi dalla fine.

La forma generale per LTRIM è

LTRIM(value)

Dove value è la stringa con cui si desidera lavorare., Se il valore è NULL, viene restituito NULL.

Ad esempio considera

SELECT LTRIM(' Product Types')

Che restituisce ‘Tipi di prodotto’

Se vuoi rimuovere spazi sia dall’inizio che dalla fine di una stringa puoi usare entrambe le funzioni.

SELECT RTRIM(LTRIM(' Product Types '))

Rimuove sia lo spazio iniziale che quello finale.

Queste funzioni sono utili quando si importano dati da file di testo, in particolare i file formattati fissi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *