1
SQL Case関数の仕組みをよりよく理解しようとしています。SQLケースの状態を理解する
言ってやる例えば、私は、クエリとをvalue1に次のコードを持っている=「ABCDE」
SELECT CASE ColumnName
WHEN value1 LIKE '%ABC%' THEN 'Hello'
WHEN value1 LIKE '%CDE%' THEN 'World'
ELSE 'Nothing'
END AS Answer
FROM TableName
私は、このコードが返すものによって混乱しています。
私はそれがHelloWorldを返すはずだと思いますが、私が見つけた同様のクエリを実行しているだけでHelloが返されます。
誰でもこの理由を説明できますか?
おかげ
私は「'CASE'と同時にWHEN''後の '' predicate'後ColumnName'を言うよりよいいただきたいです構文エラーです。 " – Serg
@Gordon Linoffこちらをご確認くださいhttps://connect.microsoft.com/SQLServer/feedback/details/690017/case-coalesce-wont-always-evaluate-in-textual-order –
@NeerajPrasadSharma。 。 。私はそれがおそらくエラーであることに同意します。しかし、問題は「ケース」が返すものである。 「短絡」をゆるやかに解釈すると、何かが返される前にすべての式を評価することができます。 。 。これらはエラーを返す可能性があります。 –