
05/12/2005, 05:25
|
| | Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 19 años, 5 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. |