Discussione:
verificare se una stringa contiene solo numeri
(troppo vecchio per rispondere)
ciao
2004-09-02 07:00:00 UTC
Permalink
devo verificare se una stringa contiene solo dei numeri (e magari la
virgola)
prima di inserirli nel db (sql server 2000). a parte l'ovvia soluzione di
controllare i caratteri uno per uno esistono soluzioni alternative ? avevo
pensato di provare a fare un cast a intero, e un fallimento significa che
non era un numero... solo che la stor proc dopo l'errore termina
brutalmente,
quindi non posso usare questo metodo. altri suggerimenti ?
grazie.
Sveltolampo
2004-09-02 07:08:14 UTC
Permalink
Ciao,

Guarda la funzione isnumeric (T-SQL)
ISNUMERIC(espressione)
Restituisce 1 se vero
Post by ciao
devo verificare se una stringa contiene solo dei numeri (e magari la
virgola)
prima di inserirli nel db (sql server 2000). a parte l'ovvia soluzione di
controllare i caratteri uno per uno esistono soluzioni alternative ? avevo
pensato di provare a fare un cast a intero, e un fallimento significa che
non era un numero... solo che la stor proc dopo l'errore termina
brutalmente,
ciao
2004-09-02 15:33:24 UTC
Permalink
isnumeric.... e dire che avevo guardato i books online.....

(che vergogna...)

Andrea Benedetti
2004-09-02 07:08:35 UTC
Permalink
Ciao,
Post by ciao
devo verificare se una stringa contiene solo dei numeri (e magari la
virgola)
prima di inserirli nel db (sql server 2000). a parte l'ovvia soluzione di
controllare i caratteri uno per uno esistono soluzioni alternative ? avevo
pensato di provare a fare un cast a intero, e un fallimento significa che
non era un numero... solo che la stor proc dopo l'errore termina
brutalmente,
quindi non posso usare questo metodo. altri suggerimenti ?
SQL Server ha una funzione, isNumeric, che consente di verifcare una stringa
e valutare se si tratta di un numero.
Prova, a titolo di esempio, nel tuo query analyzer:

declare @input varchar(50)
set @input = 'x'

select
case (isnumeric(@input))
when 1 then 'Numero'
else 'No' end
Post by ciao
grazie.
Prego,
Andrea
Loading...