2011-09-29 67 views
0

我有一個帶有if-else語句的存儲過程。我有一個場景,我需要一個需要,如果其他語句內else語句。我已經在c#中完成了這一點,但我需要它在SQL Server中,因爲我幾乎是新的存儲過程。 lemme爲u ppl提供了一個樣本片段。提前if else嵌套在存儲過程中

create procedure [dbo].[usp_getstore_details](@input varchar(100)) 
as 
begin 
    declare @out varchar(100) 
    declare @result int 

    if(LEN(@input)=2) 
     begin 
      --select statement here. 
     end 
    else if (@input like '%[0-9]%') 
     begin 
      --select statement here 
     end 
    else 
     begin 
      set @result=(len(@input) - len(replace(@input, ',', '')) 
      if(@result>1) 
       begin 
        --select statement here 
       end 
      else 
       begin 
        --select statement here 
       end 
     end 
end 

感謝烏拉圭回合的幫助

+0

除了一個太多'('本聲明'設置@結果=(LEN(@input) - LEN(替代(@input「 ,'''))''看起來不錯,改成'set @ result = len(@input) - len(replace(@input,',',''))'。在'begin ... end'中有一個註釋,但是我猜你實際上有一些代碼在那裏。 –

+0

s當然,我有一個select語句取決於條件 –

+1

好的。那麼問題是什麼? –

回答

0
CREATE PROCEDURE [dbo].[usp_getstore_details] 
@input VARCHAR(100) 
AS 
BEGIN 
    DECLARE @out VARCHAR(100) 
    DECLARE @result INT 

    IF LEN(@input) = 2 
    BEGIN 
     --select statement here. 
    END 
    ELSE IF @input LIKE '%[0-9]%' 
    BEGIN 
     --select statement here 
    END 
    ELSE 
    BEGIN 
     SET @result = LEN(@input) - LEN(REPLACE(@input, ',', '')) 
     IF @result > 1 
     BEGIN 
      --select statement here 
     END 
     ELSE 
     BEGIN 
      --select statement here 
     END 
    END 
END