Convertir campo varchar a int para comprobación

21/03/2007 - 17:25 por Masta | Informe spam
Hola a todos.

Tengo una tabla con un campo referencia como varchar(50) (aunque estas
referencias son números). Le paso una referencia por consulta, y
quiero que me muestre los registros a partir de esa referencia, pero
no me lo hace correctamente.


Stored Procedure..
(
@minimo as int
)

AS
select referencia from tabla where referencia>@minimo


Esto me devuelve lo que quiere.. referencias por encima y por debajo..

Si pruebo esto:
select referencia from tabla where cast(referencia as int)>@minimo

Me da el siguiente error de conversión:
"Error de conversión al convertir el valor varchar 'R3011' al tipo de
datos int"

¿Cómo puedo hacerlo sin cambiar el tipo de datos del campo en
cuestión?

Muchas gracias por vuestra ayuda

Preguntas similare

Leer las respuestas

#1 Yan Cantuarias
21/03/2007 - 18:09 | Informe spam
cast(MiCampoCadena as int)

"Masta" escribió en el mensaje
news:
Hola a todos.

Tengo una tabla con un campo referencia como varchar(50) (aunque estas
referencias son números). Le paso una referencia por consulta, y
quiero que me muestre los registros a partir de esa referencia, pero
no me lo hace correctamente.


Stored Procedure..
(
@minimo as int
)

AS
select referencia from tabla where referencia>@minimo


Esto me devuelve lo que quiere.. referencias por encima y por debajo..

Si pruebo esto:
select referencia from tabla where cast(referencia as int)>@minimo

Me da el siguiente error de conversión:
"Error de conversión al convertir el valor varchar 'R3011' al tipo de
datos int"

¿Cómo puedo hacerlo sin cambiar el tipo de datos del campo en
cuestión?

Muchas gracias por vuestra ayuda
Respuesta Responder a este mensaje
#2 DNC
22/03/2007 - 03:07 | Informe spam
creo que tendrias que revisar la estructura de tus tablas, comentarios entre
lineas:

Tengo una tabla con un campo referencia como varchar(50) (aunque estas
referencias son números).





si las referencias son numeros su tipo de datos deberia ser numerico

Le paso una referencia por consulta, y
quiero que me muestre los registros a partir de esa referencia, pero
no me lo hace correctamente.





el sp recibe un parametro integer y al encontrar un string no convertible a
numerico en el campo referencia bota la consulta.

si el campo referencia esta compuesto de letras y numeros una posibilidad es
parsearlo para tener en cta solo los nros (pe. 1 letra seguida de 4 nros)
pero al hacerlo no se si cumple tu premisa de obtener los registros a partir
de esa referencia.

Cordiales Saludos! ,
Diego.-

<!--Enviar Email: Pega esto en un .htm -->
<!-- INICIO -->
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#99;&#111;
&#110;&#116;&#105;&#110;&#64;&#65;&#114;&#103;&#101;&#110;&#116;
&#105;&#110;&#97;&#46;&#99;&#111;&#109;">
Diego N. Contin</a>
<!-- FIN -->
Uso del Foro
http://www.mvp-access.com/rubenvigon/foro/

Este mensaje se proporciona TAL CUAL.
Sin ningun derecho o garantia

The documentation is provided to you "as is" without warranty of any kind.
The entire risk
usage and all it's consequences including data loss and hardware damage are
with you.

"En cuestiones de cultura y de saber, solo se pierde lo que se guarda; solo
se gana lo que se da". Antonio Machado

"Tres cosas que son el deber de todos: escuchar humildemente, responder
discretamente y juzgar bondadosamente."
Tríada celta.

"I wish I'd known that before I started writing all this code."
"Masta" escribió en el mensaje
news:
Hola a todos.

Tengo una tabla con un campo referencia como varchar(50) (aunque estas
referencias son números). Le paso una referencia por consulta, y
quiero que me muestre los registros a partir de esa referencia, pero
no me lo hace correctamente.


Stored Procedure..
(
@minimo as int
)

AS
select referencia from tabla where referencia>@minimo


Esto me devuelve lo que quiere.. referencias por encima y por debajo..

Si pruebo esto:
select referencia from tabla where cast(referencia as int)>@minimo

Me da el siguiente error de conversión:
"Error de conversión al convertir el valor varchar 'R3011' al tipo de
datos int"

¿Cómo puedo hacerlo sin cambiar el tipo de datos del campo en
cuestión?

Muchas gracias por vuestra ayuda
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida