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

Come ottenere valori che non contengono numeri in SQL Server

Se hai una colonna in una tabella di database di SQL Server che contiene dati di caratteri, ma alcune righe contengono anche numeri all'interno di tali dati, puoi utilizzare la tecnica seguente per restituire solo quelle righe che non contengono numeri.

I numeri possono essere rappresentati da parole e altri simboli, ma ai fini di questo articolo, "numero" significa "cifra numerica". Quindi stiamo trovando valori che non contengono cifre numeriche.

Esempio

Supponiamo di avere una colonna con i seguenti dati:

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 dati sui caratteri, ma alcune righe contengono numeri all'interno dei dati sui caratteri.

Possiamo utilizzare la seguente query per restituire solo quelle righe che non contengono numeri:

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

Risultato:

+--------------------------+
| ProductName              |
|--------------------------|
| Left handed screwdriver  |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
| Right handed screwdriver |
+--------------------------+

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

Possiamo facilmente capovolgerlo e cambiare NOT LIKE a LIKE per restituire solo quelle righe che fanno contengono numeri.