我需要查询一些数据。这里是我构建的查询,但这对我来说并不合适。对于这个例子我使用AdventureWorks数据库。带CASE语句的多个条件
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
这不适合我。如何在同一CASE
的THEN
中有多个条件条款?我该如何做这项工作?
让我想知道为什么我只是通过使用CASE语句来尝试这样做。我想我可以用它来构建查询,因为我需要。感谢 – pavanred 2010-06-13 19:13:01
It's基本上是:(!!!条件1和条件2和condition3和条件4) 条件1 或条件2 或状况3 或 没有问题=) – kamahl 2010-06-13 20:15:57