MS SQL サーバー 2008 を使用しています。
次のようなクエリがあります。
SELECT * FROM #PreModuleAllData WITH(NOLOCK)
WHERE (@Country != 'DEFAULT' AND @Country != '' AND([Language] = @Country ))
OR (@UserType != 'DEFAULT' AND @UserType != '' AND([UserType] = @UserType ))
OR (@Group != 'DEFAULT' AND @Group != '' AND([Company] = @Group ))
OR (@CodeUsage != 'DEFAULT' AND @CodeUsage != '' AND([User Code]= @CodeUsage ))
計画では、パラメータのいずれかが「」またはデフォルトに設定されている場合、すべてのデータを返す予定でした。パラメータが使用された場合、その特定の where 句に基づいて返されます。
たとえば、パラメータ @country が言語、つまり英語に設定されている場合、クエリはデータを返します。
しかし、すべてのパラメーターがデフォルトに設定されている場合、何も返されませんが、すべてのレコードが返される必要があります。ロジックに非常に単純なものが欠けているように感じますが、その理由はわかりません。
手がかりはありますか?