PDA

Ver la Versión Completa : consulta usando IF .. ELSE.. en un FROM


raffagia
19-10-2004, 01:08:25
hola, , tengomun draam con un consulta,, ,, esta depende de un parametro,,, o sea,, si el parametro es 1, entra por el IF y si es = entra por el ELSe...
pero me tira error cerca de IF,,, estoy usando SQL server y BDE
cual es el problema-? no se puede usar un if adentro de un from???
bueno, muchas gracias por leer..
saludos
Raffa
CREATE PROCEDURE [DBO].[PRUEBVA2] (@tipo int)AS
SELECT tabla1.horario

FROM

(
IF (@tipo = 0) SELECT *
FROM dbo.HORA
WHERE (dbo.HORA.horario <= '13')
ELSE
SELECT *
FROM dbo.HORA
WHERE (dbo.HORA.horario > '13')
)

Listirrinin
19-10-2004, 11:00:50
UTILIZA EL CASE EN VEZ DEL IF
DE TODAS FORMAS SI EL SQL ES EL QUE PROPONES TE SUGIERO LO SIGUIENTE

CREATE PROCEDURE [DBO].[PRUEBVA2] (@tipo int)AS
SELECT tabla1.horario

FROM
SELECT *
FROM dbo.HORA
WHERE (dbo.HORA.horario <= '13' and @tipo = 0) OR (dbo.HORA.horario > '13' and @tipo<>0)
)



UTILIZACION DEL CASE....
NO LO HE PROBADO PERO YA QUE EL IF NO FUNCIONA.... PRUEBA LO SIGUIENTE:
CREATE PROCEDURE [DBO].[PRUEBVA2] (@tipo int)AS
SELECT tabla1.horario

FROM

(
CASE WHEN (@tipo = 0) THEN SELECT *
FROM dbo.HORA
WHERE (dbo.HORA.horario <= '13')
ELSE
SELECT *
FROM dbo.HORA
WHERE (dbo.HORA.horario > '13')

END
)