2010-11-12 4 views
5

Come posso verificare se la mia stringa contiene lettere iniziali? In C# è facile, ma lo sto facendo in SQL. C'è un modo per controllare questo? Se sì, come posso rimuoverlo?Controllare se la stringa contiene lettere iniziali

EX: @MyString = 'A1234'

stringa Aggiornato = '1234' involucro SOTTOSTRINGA

risposta

12

Usa:

UPDATE YOUR_TABLE 
    SET your_column = SUBSTRING(your_column, 2, DATALENGTH(your_column)) 
WHERE your_column LIKE '[A-Za-z]%' 
+0

penso che si dovrebbe cambiare 'DATALENGTH()' a 'LEN()': se il tipo è Unicode (e 'NVARCHAR' è ampiamente utilizzato al giorno d'oggi)' DATALENGTH() 'sarà 'raddoppia' la lunghezza. – onedaywhen

0

Prova in un se ... se si desidera controllare

substring(@MyString,1,1) = 'A' 

o semplicemente

declare @val varchar(10) 

set @val = substring(@MyString,1,1) 
1

Per una lettera di primo piano, si può fare:

IF NOT ISNUMERIC(SUBSTRING(@MyString, 1, 1)) 
    SET @MyString = SUBSTRING(@MyString, 2, LEN(@MyString)) 

È possibile ripetere fino a quando non ci sono più lettere.