sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får värden som inte innehåller siffror i SQL Server

Om du har en kolumn i en SQL Server-databastabell som innehåller teckendata, men vissa rader också innehåller siffror i den datan, kan du använda följande teknik för att returnera bara de rader som inte innehåller siffror.

Siffror kan representeras av ord och andra symboler, men för denna artikels syfte betyder "nummer" "numerisk siffra". Så vi hittar värden som inte innehåller några numeriska siffror.

Exempel

Anta att vi har en kolumn med följande data:

SELECT ProductName 
FROM Products;

Resultat:

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

Den här kolumnen innehåller teckendata, men vissa rader innehåller siffror i teckendata.

Vi kan använda följande fråga för att returnera bara de rader som inte gör det innehålla siffror:

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

Resultat:

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

Som förväntat returneras endast de rader som inte innehåller siffror.

Vi kan enkelt vända på det och ändra NOT LIKE till LIKE för att endast returnera de rader som gör innehålla siffror.


  1. MySQL – MariaDB – Skriver den allra första lagrade proceduren

  2. Felaktig syntax nära ''

  3. Hur visar jag en bild från blob-kolumnen i Oracle med JasperReports?

  4. SQL-fråga för trädtabell