Foros del Web » Programando para Internet » ASP Clásico »

Instruccion iif en consulta asp

Estas en el tema de Instruccion iif en consulta asp en el foro de ASP Clásico en Foros del Web. Hola. Tengo un asp que carga con request valores de un formulario como por ejemplo en la variable Zona. Si quiero hacerlo depender de si ...
  #1 (permalink)  
Antiguo 04/12/2005, 20:59
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Instruccion iif en consulta asp

Hola.
Tengo un asp que carga con request valores de un formulario como por ejemplo en la variable Zona.
Si quiero hacerlo depender de si se ha insertado algo o no debo hacerlo usando iif:

sql = "SELECT Casa.* FROM Casa WHERE Casa.Zona=iif("&request("Zona")<>"",&request("Zona ")&",'%')

En el caso de que Zona tenga valor "", quiero que devuelva todos los registros.

Por alguna razón no me funciona. Creo que deben ser las comillas ("). ¿Alguien me puede ayudar? Gracias.
  #2 (permalink)  
Antiguo 04/12/2005, 21:12
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Ola!

iif no existe... querras decir "if"?


Otra cosa :P

La verdad es que no te entiendo mucho lo que quieres, y pienso que te estas liando un poquito.
A lo mejor si pones directamente esto:

SQL = " SELECT * FROM Casa "
Conn.Execute(SQL)


Eso te coge todos los valores de la tabla "Casa", independientemente el campo "Zona" esté vacío o no.

Luego sólo has de recuperar el valor del campo.

Si no así pon más código o especifica mas.

lo siento, buenas noxes ;)
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #3 (permalink)  
Antiguo 04/12/2005, 21:46
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 1 mes
Puntos: 7
en sql server existe CASE WHEN que puedes usar en lugar de IIF
__________________
No tengo firma ahora... :(
  #4 (permalink)  
Antiguo 05/12/2005, 05:25
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Iif si existe en SQL.

iif(Expresion,Valor1,Valor2)

En donde Expresión es la sentencia que evaluamos; si Expresión es verdadera entonces se devuelve Valor1, si Expresión es falsa se devuelve Valor2.

Yo realmente recibo en un asp con request varios valores (por ejemplo, 5) pertenecientes a campos de una misma tabla desde una lista desplegable para cada valor en un formulario que responde un usuario. Habrá casos en los que el usuario seleccione valor en 3 de las listas desplegables y en las otras 2 deje el valor por defecto que es vacío para que se tenga en cuenta cualquier valor. Necesito realizar una consulta que realice una busqueda de los registros que contengan los campos con los valores seleccionados (o no, en el caso de dejar por defecto en las listas desplegables).

Usando sentencias if debería de quedar algo similar a:

sql=select * from tabla where "
if Valor1Recibido<>"" then sql=sql & "Campo1="&Valor1Recibido end if
if Valor2Recibido<>"" then sql=sql & "Campo2="&Valor2Recibido end if
y así hasta 5
pero haciéndolo me sale el error que no finalizo la instruccion


o se podría hacer también con iif que quedaría, para un caso concreto, algo similar a:

sql= "SELECT Casa.* FROM Casa WHERE Casa.Zona=" & IIf(Zona,Zona, "%") & ";"

pero como digo en ambos casos me dan error y creo que es por las comillas que no coloco correctamente. A ver si alguien me puede ayudar. Muchas gracias.
  #5 (permalink)  
Antiguo 05/12/2005, 07:18
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Con la siguiente consulta me da el error

Error de sintaxis en la cadena en la expresión de consulta 'Casa.Zona=IIf(Zon.text<>",Zon.text, '%');'.


La consulta es:

sql= "SELECT Casa.IdCasa, Casa.Zona FROM Casa WHERE Casa.Zona=IIf(Zon.text<>"",Zon.text, '%');"

Gracias
  #6 (permalink)  
Antiguo 05/12/2005, 09:44
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
La verdad que iff si existe. rebisa bien tu consulta. Y si deseas que no te tome los campos nulos simplemente le puedes indicar asi:


Select * from tabla where campo is not null
  #7 (permalink)  
Antiguo 05/12/2005, 09:56
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 4 meses
Puntos: 1
Hola,

IIF existe en Jet, el motor de ACCESS el is interpreta ese código.

Pero en SQL Server no existe el IIF, lo que existe es WHEN, a como lo dijo Mickel.

Te recomiendo que leas la ayuda del motor utilizado.
__________________
Leer es Saber, REEL.
Mi Blog
  #8 (permalink)  
Antiguo 05/12/2005, 16:33
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Bueno jeje perdon entonces... si existe iif tendré que documentarme :p

saludos!
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:29.