Мне нужно запросить некоторые данные. вот запрос, который я создал, но который не подходит для меня. В этом примере я использую базу данных 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
Это не работает для меня. Как я могу иметь несколько условий, где условия в THEN
того же CASE
? Как я могу сделать эту работу?
Заставляет меня задаться вопросом, почему я пытался это сделать, только используя инструкцию CASE. Наверное, я могу использовать это, чтобы построить запрос по мере необходимости. благодаря – pavanred
подмигнули в основном: (!! condition1 и condition2 и condition3 и условие 4) условие 1 или условие 2 или условие 3 или Нет проблем =) – kamahl