Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   consulta usando IF .. ELSE.. en un FROM (https://www.clubdelphi.com/foros/showthread.php?t=15320)

raffagia 19-10-2004 01:08:25

consulta usando IF .. ELSE.. en un FROM
 
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
Código:

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
)


La franja horaria es GMT +2. Ahora son las 22:05:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi