0

いずれかの条件で複数の値または複数の行を返す if else ステートメントがあります。

以下のコードは、1 つの値のみを返すものです。

 if @ifExist = 'TRUE' 
   begin   
     (SELECT [ID],[PersonFirstName],[PersonLastName],[PersonEmail] 
     FROM   MYTABLE
     WHERE  SOMEForigenID = SomeID)
   end

 ELSE 
   begin (SELECT [ID],[PersonFirstName],[PersonLastName],[PersonEmail] 
     FROM   MYTABLE
     WHERE  SOMEForigenID = SomeOtherID)
    end

これを実装する方法がわからないので、最初の選択ステートメントまたは2番目のステートメントを返すことができます。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

3

CASE値が 3 つ以上になる場合は、ステートメントが役立ちます@ifExist

SELECT [ID],[PersonFirstName],[PersonLastName],[PersonEmail] 
FROM   MYTABLE
WHERE  SOMEForigenID = CASE @ifExist WHEN 'TRUE' THEN 1 ELSE 2 END

複数の値の例:

WHERE  SOMEForigenID = CASE @ifExist 
                            WHEN 'A' THEN 1 
                            WHEN 'B' THEN 2 
                            WHEN 'Z' THEN 26 
                            ELSE -1
                       END

可能な値が 2 つしかない場合は、IIF を使用することもできます

WHERE  SOMEForigenID = IIF(@ifExist, 1, 2) -- @ifExist is a BIT

また

WHERE  SOMEForigenID = IIF(@ifExist = 'TRUE', 1, 2) -- @ifExist as char
于 2013-06-26T14:38:58.150 に答える