Ho una colonna varchar (100) in una tabella che contiene un insieme di stringhe di numeri interi (come stringhe) e non interi. Per esempio.SQL Server 2005 Converti VARCHAR in INT ma predefinito su tipo non valido
| dimension varchar(100) |
| '5' |
| '17' |
| '3' |
| 'Pyramids' |
| 'Western Bypass' |
| '15' |
Come posso scrivere un'espressione, ad es. riassumere tutti i valori che sono interi validi? Se dovessi provare:
-- should return 5 + 17 + 3 + 15 = 40
SELECT
SUM(CONVERT(INT, dimension))
FROM
mytable
avrei ricevuto un errore di Conversion failed when converting the varchar value 'Pyramids' to data type int.
.
Esiste un test che posso utilizzare nella mia espressione, proprio come la funzione ISNULL()
, che mi consente di specificare un valore predefinito se il campo non è un numero?
Perfetto! Grazie! 'ISNUMERIC ('- 1.44')' e 'ISNUMERIC ('12')' restituisce 1 mentre 'ISNUMERIC ('foobar')' restituisce 0. Proprio ciò di cui avevo bisogno. –