2017-08-01 53 views
2

我有以下存储过程:CASE或IF然后选择SQL

ALTER Procedure _MySP (@oDate date) 
AS 
BEGIN 
    SELECT * 
    FROM _table1 
    WHERE oDate >= @oDate 
END 

我想修改查询的东西,如:

IF @oDate <= '2017-06-01' 
THEN 
    SELECT * 
    FROM _table2 
ELSE 
    SELECT * 
    FROM _table1 
END 

我怎样才能做到这一点?请指教。

谢谢。

回答

3

你试过这个吗?

alter Procedure _MySP (@oDate date) 
as 
begin 
    If @oDate <= '2017-06-01' 
     SELECT * FROM _table2 
    else 
     SELECT * FROM _table1 
end; 
0
alter Procedure _MySP (@oDate date) 
as 
begin 
    select * from _table1 where @oDate => '2017-06-01' 
    select * from _table2 where @oDate <= '2017-06-01' 
end 

应该做的伎俩。希望你没有平等的案例思想。

0
IF @oDate <= '2017-06-01' 
BEGIN 
    SELECT * FROM _table1 
    --where-- 
END 
ELSE 
BEGIN 
    SELECT * FROM _table2 
    --where-- 
END 
0

请试试这个。

ALTER PROCEDURE _MySP (@oDate date) 
BEGIN 
IF (@oDate < = '2017-06-01') 

BEGIN 

    SELECT * FROM _table2 

END 

ELSE 

BEGIN 

    SELECT * FROM _table1 

END 


END