Plusieurs conditions de l'AFFAIRE états

J'ai besoin d'interroger des données. voici la requête que j'ai construite, mais qui n'est pas workig bien pour moi. Pour cet exemple, je suis en utilisant la base de données AdventureWorks.

SELECT * FROM [Purchasing].[Vendor] WHERE PurchasingWebServiceURL LIKE 
case
// In this case I need all rows to be returned if @url is '' or 'ALL' or NULL
 when (@url IS null OR @url = '' OR @url = 'ALL') then ('''%'' AND PurchasingWebServiceURL IS NULL')
//I need all records which are blank here including nulls
         when (@url = 'blank') then (''''' AND PurchasingWebServiceURL IS NULL' )
//n this condition I need all record which are not like a particular value
         when (@url = 'fail') then ('''%'' AND PurchasingWebServiceURL NOT LIKE ''%treyresearch%''' )
//Else Match the records which are `LIKE` the input value
         else '%' + @url + '%' 
    end

Ce n'est pas de travail pour moi. Comment puis-je avoir plusieurs où clauses de conditions dans le THEN de la même CASE? Comment puis-je faire ce travail?

OriginalL'auteur pavanred | 2010-06-13