1

SQL Serverストアプロシージャで次のような条件を持つ方法を理解しようとしています。 私はどちらか「Y」を有することができる@Varianceのパラメータを持っているか、「N」または「A」の条件は次のようでなければならないWhereステートメントで異なる演算子を使用したCaseステートメント

ザ以下の値」を有することができる

IF @Variance = 'Y' THEN 
flag_d ≠ ‘Y’ OR flag_c ≠ ‘Y’ 

IF @Variance = 'N' THEN 
flag_d = ‘Y’ AND flag_c = ‘Y’ 

and If @Variance = 'A' THEN 
Do not check columns flag_c and flag_d. 

flag_cとflag_d Y '、' N '、' X 'または空白にすることができます。

動的SQLを使用せずにこれを実現できる方法はありますか。

+0

あなたはfiしようとしていますかこの条件に基づいて、またはこの条件に基づいて別の情報を出している? – Eli

答えて

0

あなたはWhere句の簡単なOr声明でこれを行うことができます。このような何かがあなたが始めるのに役立つかもしれない

Where (@Variance = 'Y' And (Flag_D <> 'Y' Or Flag_C <> 'Y')) 
Or  (@Variance = 'N' And (Flag_D = 'Y' And Flag_C = 'Y')) 
Or  (@Variance = 'A') 
+0

第2の条件は、「OR」の代わりに「AND」を使用する必要があります – Lamak

+0

@Lamak Ah、良いキャッチ - 固定。ありがとう – Siyual

+0

それは、ありがとう、働いた。 – user1562696

-1

CASE 
WHEN @Variance = 'Y' THEN outcome 
WHEN @Variance = 'N' THEN outcome 
WHEN @Variance = 'A' THEN outcome 
ELSE something 
END 

か、Y、Nを必要とする場合、およびAはすべて異なる事を行い、次に複数の場合を行います:

CASE 
WHEN @Variance = 'Y' THEN outcome1 
END, 
CASE 
WHEN @Variance = 'N' THEN outcome2 
END, 
CASE 
WHEN @Variance = 'A' THEN outcome3 
END 
+0

あなたは他のフィールドを考慮していません。質問に答えません。 – Eli

関連する問題