Isnumeric e Isdate

04/05/2007 - 14:21 por Aventurero | Informe spam
Disculpen si esta pregunta es muy elemental.
Pero no se como utilizar en un Case de un procedimiento almacenado las
funciones
Isnumeric()
Isdata()
Me sale error si tengo
case isnumeric(campotabla) when false then cast(campotabla as int) else 0
end as campo
caso igual ocurre con istadate()

Gracias anticipadas.

Atentamente,


Aventurero

Preguntas similare

Leer las respuestas

#1 Maxi
04/05/2007 - 16:31 | Informe spam
Hola, de donde has sacado esa sintaxis? has leido minimamente la sentencia
case y isnumeric en tus libros on line?

Porque la sintaxis es:

select case when isnumeric('10') = 1 then 10 else 0
end as campo


fijate que el when esta mal en tu query y ademas pones un false que no se de
donde lo has sacado


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Aventurero" escribió en el mensaje
news:ePA%
Disculpen si esta pregunta es muy elemental.
Pero no se como utilizar en un Case de un procedimiento almacenado las
funciones
Isnumeric()
Isdata()
Me sale error si tengo
case isnumeric(campotabla) when false then cast(campotabla as int) else 0
end as campo
caso igual ocurre con istadate()

Gracias anticipadas.

Atentamente,


Aventurero

Respuesta Responder a este mensaje
#2 Jesús López
04/05/2007 - 16:48 | Informe spam
IsNumeric e IsDate devuelven un int con valor 1 ó 0, no un boolean. En SQL
Server no existe este tipo de dato (bit no es más que otro tipo de entero),
por tanto false tampoco existe como literal de tipo booleano.

Así que tendría que hacerse así:

CASE ISNUMERIC(CampoTabla) WHEN 1 THEN CAST(CampoTabla AS int) ELSE 0 END AS
Campo

Además lo tenías puesto al revés. Se supone que cuando es numérico entonces
haces la conversión.

Por lo que veo necesitas almacenar en un campo (CampoTabla) distintos tipos
de datos y para ello lo almacenas como cadenas de caracteres. Yo
consederaría almacenarlo como sql_variant.

Saludos:

Jesús López
www.solidqualitylearning.com



"Aventurero" escribió en el mensaje
news:ePA%
Disculpen si esta pregunta es muy elemental.
Pero no se como utilizar en un Case de un procedimiento almacenado las
funciones
Isnumeric()
Isdata()
Me sale error si tengo
case isnumeric(campotabla) when false then cast(campotabla as int) else 0
end as campo
caso igual ocurre con istadate()

Gracias anticipadas.

Atentamente,


Aventurero

Respuesta Responder a este mensaje
#3 Aventurero
04/05/2007 - 17:01 | Informe spam
Gracias Maxi.
Estaba cometiendo una torpesa.
Disculpas por la ignorancia, por estar tan centrado en el Falso y vedadero
del ASP.NET, y no del 0 y 1 del SQL.
Atentamente,


Aventurero
Respuesta Responder a este mensaje
#4 Maxi
04/05/2007 - 17:41 | Informe spam
Jaja, a todos nos pasa que se nos mezclan las cosas:S ye he escrito en un
evento de SQL con 100 personas, algo asi como

dim @nnn - y gue


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Aventurero" escribió en el mensaje
news:
Gracias Maxi.
Estaba cometiendo una torpesa.
Disculpas por la ignorancia, por estar tan centrado en el Falso y vedadero
del ASP.NET, y no del 0 y 1 del SQL.
Atentamente,


Aventurero


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