Varchar to int

27/04/2004 - 19:18 por Diego Uribe | Informe spam
Para evitar este error:

Select cast('prueba' as int)

como se comprueba si es numerico, algo asi como la funcion isnumeric de
visual??
existe en sql server?

Gracias

Diego

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
27/04/2004 - 20:00 | Informe spam
Wenas!! sacado del BOL:

ISNUMERIC
Determina si una expresión es de tipo numérico válido.

Sintaxis
ISNUMERIC ( expression )

Argumentos
expression

Es la expresión que va a evaluarse.

Tipos devueltos
int

Observaciones
ISNUMERIC devuelve 1 cuando la expresión de entrada da como resultado un
entero válido, número de punto flotante, tipo money o decimal ; en caso
contrario devuelve 0. Un valor de retorno 1 garantiza que expression se
puede convertir en uno de estos tipos numéricos.

Ejemplos
A. Utilizar ISNUMERIC
En este ejemplo se devuelve 1 debido a que la columna zip contiene valores
numéricos válidos.

USE pubs
SELECT ISNUMERIC(zip)
FROM authors
GO
B. Utilizar ISNUMERIC y SUBSTRING
En este ejemplo se devuelve 0 para todos los títulos de la tabla titles
debido a que ninguno de los títulos es un valor numérico válido.

USE pubs
GO
SELECT SUBSTRING(title, 1, 15) type, price, ISNUMERIC(title)
FROM titles
GO
El siguiente es el conjunto de resultados:

type price
The Busy Execut 19.99 0
Cooking with Co 11.95 0
You Can Combat 2.99 0
Straight Talk A 19.99 0
Silicon Valley 19.99 0
The Gourmet Mic 2.99 0
The Psychology (null) 0
But Is It User 22.95 0
Secrets of Sili 20.00 0
Net Etiquette (null) 0
Computer Phobic 21.59 0
Is Anger the En 10.95 0
Life Without Fe 7.00 0
Prolonged Data 19.99 0
Emotional Secur 7.99 0
Onions, Leeks, 20.95 0
Fifty Years in 11.95 0
Sushi, Anyone? 14.99 0

(18 row(s) affected)


Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Diego Uribe" escribió en el mensaje
news:
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004
#2 Diego Uribe
27/04/2004 - 21:08 | Informe spam
Gracias

"Maximiliano D. A." escribió en el
mensaje news:
Mostrar la cita
#3 Manuel Etcheto
28/04/2004 - 00:09 | Informe spam
Hola Diego
Solo una aclaración sobre algo que es totalmente correcto
pero se puede prestar a engaño:
"que una expresión es de tipo numérico válido" (esto
también pasa en vb)
ISNUMERIC('2e23') te va a dar 1 (ok).
Pero no la vas a poder convertir directamente con tu cast
() y te va a dar el mismo error.

Sí que la podrías convertir al número que expresa, con sql
dinámico, pero en ese caso te puede desbordar cualquier
tipo con unos pocos caracteres...

Si querés estar seguro tendrías que recorrer los
caracteres para solo permitir 0-9 - .

Suerte
Manuel


Mostrar la cita
escribió en el
Mostrar la cita
como resultado un
Mostrar la cita
decimal ; en caso
Mostrar la cita
que expression se
Mostrar la cita
zip contiene valores
Mostrar la cita
la tabla titles
Mostrar la cita
numérico válido.
Mostrar la cita
expect a result of 0
Mostrar la cita
(title)
Mostrar la cita
como
Mostrar la cita
funcion isnumeric de
Mostrar la cita
(http://www.grisoft.com).
Mostrar la cita
19/04/2004
Mostrar la cita
#4 Diego Uribe
28/04/2004 - 16:32 | Informe spam
Buena la aclaracion
gracias al cielo no manejo numeros tan grandes

"Manuel Etcheto" escribió en el
mensaje news:530401c42ca4$537baf90$
Hola Diego
Solo una aclaración sobre algo que es totalmente correcto
pero se puede prestar a engaño:
"que una expresión es de tipo numérico válido" (esto
también pasa en vb)
ISNUMERIC('2e23') te va a dar 1 (ok).
Pero no la vas a poder convertir directamente con tu cast
() y te va a dar el mismo error.

Sí que la podrías convertir al número que expresa, con sql
dinámico, pero en ese caso te puede desbordar cualquier
tipo con unos pocos caracteres...

Si querés estar seguro tendrías que recorrer los
caracteres para solo permitir 0-9 - .

Suerte
Manuel


Mostrar la cita
escribió en el
Mostrar la cita
como resultado un
Mostrar la cita
decimal ; en caso
Mostrar la cita
que expression se
Mostrar la cita
zip contiene valores
Mostrar la cita
la tabla titles
Mostrar la cita
numérico válido.
Mostrar la cita
expect a result of 0
Mostrar la cita
(title)
Mostrar la cita
como
Mostrar la cita
funcion isnumeric de
Mostrar la cita
(http://www.grisoft.com).
Mostrar la cita
19/04/2004
Mostrar la cita
Ads by Google
Search Busqueda sugerida