Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come rilevare se un valore contiene almeno un numero in SQL Server

A volte potrebbe essere necessario cercare in una tabella di database solo quelle righe che contengono almeno un numero in una determinata colonna.

A rigor di termini, i numeri possono essere rappresentati da parole e altri simboli, ma ai fini di questo articolo "numero" significa "cifra numerica".

Di seguito è riportato un esempio di come utilizzare T-SQL per trovare righe che contengono almeno un numero in SQL Server.

Esempio

Supponiamo di avere una tabella chiamata Products con i seguenti dati nel suo ProductName colonna:

SELECT ProductName 
FROM Products;

Risultato:

+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Left handed screwdriver             |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
| Right handed screwdriver            |
+-------------------------------------+

Questa colonna contiene ovviamente dati di carattere, ma alcune righe contengono numeri all'interno di tali dati di carattere (anche se non sono archiviati come tipo numerico).

Possiamo utilizzare la seguente query per restituire solo quelle righe che contengono numeri rappresentati da cifre numeriche:

SELECT ProductName 
FROM Products
WHERE ProductName LIKE '%[0-9]%';

Risultato:

+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Come previsto, vengono restituite solo le righe che contengono numeri.

Questa tecnica non si limita ai soli numeri. È possibile modificare questa query per includere altri caratteri, se necessario. Tutto ciò che stiamo facendo è specificare il nostro modello per il LIKE operatore.