Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie Werte, die keine Zahlen in SQL Server enthalten

Wenn Sie eine Spalte in einer SQL Server-Datenbanktabelle haben, die Zeichendaten enthält, aber einige Zeilen innerhalb dieser Daten auch Zahlen enthalten, können Sie die folgende Technik verwenden, um nur die Zeilen zurückzugeben, die keine Zahlen enthalten.

Zahlen können durch Wörter und andere Symbole dargestellt werden, aber für die Zwecke dieses Artikels bedeutet „Zahl“ „Zahl“. Wir finden also Werte, die keine Ziffern enthalten.

Beispiel

Angenommen, wir haben eine Spalte mit den folgenden Daten:

SELECT ProductName 
FROM Products;

Ergebnis:

+-------------------------------------+
| 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            |
+-------------------------------------+

Diese Spalte enthält Zeichendaten, aber einige Zeilen enthalten Zahlen innerhalb dieser Zeichendaten.

Wir können die folgende Abfrage verwenden, um nur die Zeilen zurückzugeben, die nicht Zahlen enthalten:

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

Ergebnis:

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

Wie erwartet werden nur die Zeilen zurückgegeben, die keine Zahlen enthalten.

Wir können es einfach umdrehen und NOT LIKE ändern zu LIKE um nur die Zeilen zurückzugeben, die tun Zahlen enthalten.