Funzione STRING_SPLIT in SQL Server

Funzione STRING_SPLIT in SQL Server 2019

Vediamo come utilizzare la funzione String_Split in SQL Server per dividere una stringa in una riga di sottostringhe in base a un separatore specificato.

Gli utenti di SQL Server in genere necessitano di funzioni di analisi e modifica delle stringhe. In diversi scenari, questa operazione di analisi o modifica delle stringhe può essere complicata per gli sviluppatori o gli amministratori di database.

Per questo motivo, a partire da SQL Server 2016, Microsoft ha annunciato nuove funzioni come STRING_ESCAPE, STRING_SPLIT sono state aggiunte in SQL Server 2016 e le funzioni stringa CONCAT_WS, STRING_AGG, TRANSLATE e TRIM sono state aggiunte a SQL Server 2017.

In questo articolo, discuteremo la funzione STRING_SPLIT in SQL Server, in particolare. Lo scopo di questa funzione stringa integrata è convertire le matrici di stringhe in colonne separate da qualsiasi separatore. La figura seguente illustra l’idea principale di questa funzione.

Funzione STRING_SPLIT in SQL Server - Risultato
Funzione STRING_SPLIT in SQL Server – Risultato finale

Questa funzione è stata introdotta in SQL Server 2016 e le versioni precedenti di SQL Server non supportano questa funzione predefinita. In altre parole, questa funzione non è supportata sotto il livello di compatibilità 130. 

Sintassi funzione String_Split in Sql Server

La sintassi è molto semplice in quanto questa funzione integrata con valori di tabella accetta solo due parametri. Il primo è una stringa e il secondo è un singolo carattere

STRING_SPLIT ( input_string , separator )  

Nella sintassi seguente:

  • string: Espressione di qualsiasi tipo carattere, ad esempio nvarchar , varchar , nchar o char.
  • separator: È un’ espressione a carattere singolo di qualsiasi tipo, ad esempio nvarcharvarcharnchar  o char , usata come separatore per sottostringhe concatenate.

Esempio funziona con dati:

select value from STRING_SPLIT('apple,banana,lemon,kiwi,orange,coconut',',')
Funzione STRING_SPLIT in SQL Server - Esempio Query
Funzione STRING_SPLIT in SQL Server – Esempio Query

Funzione STRING_SPLIT e Where Condition

Attraverso la clausola WHERE, possiamo filtrare il set di risultati della funzione STRING_SPLIT. Nella seguente istruzione select, la clausola WHERE filtra il set di risultati della funzione e restituirà solo la riga o le righe che iniziano con “le”.

select value 
from 
STRING_SPLIT('apple,banana,lemon,kiwi,orange,coconut',',') 
WHERE value LIKE 'le%'

Inoltre, possiamo usare la funzione in questa forma:

USE AdventureWorks2014
GO
 
select * from HumanResources.Employee 
WHERE [jobtitle] IN 
(select value from string_split('Chief Executive Officer , Design Engineer',','))

Funzione STRING_SPLIT e Order BY

Un altro requisito di cui abbiamo bisogno nelle istruzioni SELECT è la funzionalità di ordinamento. Possiamo ordinare l’output di questa funzione che assomiglia alle altre istruzioni T-SQL.

select value from STRING_SPLIT('apple,banana,lemon,kiwi,orange,coconut',',')
order by value

Nota: su alcuni feedback in SQL Server, mi sono imbattuto in un suggerimento sulla funzione STRING_SPLIT che è “La nuova funzione di divisione delle stringhe in SQL Server 2016 ha bisogno di una colonna aggiuntiva, una colonna ListOrder che denota l’ordine dei valori divisi”.

Funzione STRING_SPLIT e JOIN

È possibile combinare il risultato della funzione impostato sull’altra tabella con la clausola JOIN.

USE [AdventureWorks2014]
GO
 
SELECT
      [PersonType]
      ,[NameStyle]
     ,[FirstName]
      ,[MiddleName]
      ,[LastName]
   FROM [Person].[Person] P
INNER JOIN string_split('Ken,Terri,Gail',',')
on P.FirstName=value
Funzione STRING_SPLIT in SQL Server con Inner Join
Funzione STRING_SPLIT in SQL Server con Inner Join

Inoltre, possiamo usare la funzione CROSS APPLY per combinare il set di STRING_SPLIT funzione con altre tabelle. CROSS APPLY ci consente di unire l’output della funzione valore tabella ad altre tabelle.

Conclusione

Abbiamo visto come utilizzare la funzione String_Split in Sql Server.

Leggi le altre guide su Sql Server presenti in questo blog:

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003