sql >> Databáze >  >> RDS >> Sqlserver

Jak získat hodnoty, které neobsahují čísla v SQL Server

Pokud máte v databázové tabulce SQL Server sloupec, který obsahuje znaková data, ale některé řádky v těchto datech obsahují také čísla, můžete pomocí následující techniky vrátit pouze ty řádky, které neobsahují čísla.

Čísla mohou být reprezentována slovy a jinými symboly, ale pro účely tohoto článku „číslo“ znamená „číslice“. Takže nacházíme hodnoty, které neobsahují žádné číselné číslice.

Příklad

Předpokládejme, že máme sloupec s následujícími údaji:

SELECT ProductName 
FROM Products;

Výsledek:

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

Tento sloupec obsahuje znaková data, ale některé řádky obsahují čísla v těchto znakových datech.

Pomocí následujícího dotazu můžeme vrátit pouze ty řádky, které není obsahovat čísla:

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

Výsledek:

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

Podle očekávání jsou vráceny pouze ty řádky, které neobsahují čísla.

Můžeme to snadno otočit a změnit NOT LIKE LIKE aby se vrátily pouze ty řádky, které dělají obsahovat čísla.


  1. Jak odstranit uloženou proceduru v MySQL

  2. Problémy s transakční replikací serveru SQL

  3. Připojení Talend na Windows k databázi ODBC

  4. Získání výjimky java.sql.SQLException:Operace není povolena po uzavření sady ResultSet