CASE或IF然后SELECT SQL

时间:2017-08-01 02:19:46

标签: sql sql-server tsql sql-server-2008-r2

我有以下存储过程:

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

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

谢谢。

4 个答案:

答案 0 :(得分:3)

你试过这个吗?

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

答案 1 :(得分: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

应该做的伎俩。希望你没有平等的想法。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

请试一试。

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

BEGIN

   SELECT * FROM _table2 

END

ELSE

BEGIN

   SELECT * FROM _table1

END


END