How to use case and Where ? I tried these lines,it is showing error? Is it possible to use a query which will select the where condition using a parameter.
Here i am tring to pass ‘Name’ and ‘Category’, if Name then it will use like opearator with Name ,if ‘Category’ then it will select LIKE with category.
Select *
FROM [tblAssetAccessory] assry
WHERE
(CASE @Query
WHEN 'Name' THEN assry.accessry_name like '%'+@Search+'%' END
WHEN 'Category' THEN assry.accessory_CategoryID IN
(SELECT asryCat.accessory_CategoryID FROM [Asset].tblAssetAccessory_Category asryCat
WHERE asryCat.accessory_Category LIKE '%'+@Search+'%' ) END )
AND assry.company_ID=@company_ID
AND assry.branch_ID=@branch_ID
AND assry.division_ID=@division_ID
AND assry.isDeleted=0
)
CASEis an expression – it has to return a value. And for SQL Server, so far, at least, the result of a predicate isn’t a value.Try re-writing your query using more straightforward AND/OR conditions: