2017-11-22 18 views

答えて

3

WHERE (a1 <> 'abc' OR a2 <> 'abcdefg') AND 1 = 2

のための同等のSQL serverステートメントが何であるかを知りたいと思った。しかし、あなたはまた、SQL-Serverで!=を使用することができます(ではないがANSI規格)

私がいないところ

でselect句でそれを追加したいです
SELECT ConditionTrue = CASE WHEN (a1 <> 'abc' OR a2 <> 'abcdefg') AND 1 = 2 
         THEN 'Yes' ELSE 'No' END 
FROM dbo.TableName 

それは条件が(C#バージョンと同じ)のでAND 1 = 2の(Yes)決して真にはならないことは注目に値します。

+0

私はSELECT句でそれをどこに追加したいのですか? – Prasu

+0

@Prasu: 'where'を' select'と置き換えてください。たとえば、 'SELECT CASE WHEN ... 'としてください。 –

+0

SQLは手続き型ではなく宣言型なので、 'AND'と' OR'論理演算子の短絡バージョンを持っています。この答えのT-SQLコードは '(a1!=" abc "| a2!=" abcdefg ")&false'と同等です。しかし、結果は論理的に同じですが、 'NULL'値を除いています。 –

関連する問題