2014-10-09 4 views
-4

я снова, и это еще одна школа темаПолучение нежелательных строк с LIKE в SQL

Я ограничен командами WHERE из отборного

Субъект в основном показывают имя из таблицы клиентов, начиная с A или B и заканчивая S или P, я пытался несколько или решения, но ни один из них не похоже на работу, ответ 1 столбец 6 строк я не могу получить этот код, чтобы работать

USE Northwind 
SELECT 
CompanyName 
FROM Customers 
WHERE CompanyName LIKE '[A/B]%' or CompanyName LIKE '%[S/P]' 
go 

С этим кодом я получаю 31 строку:/

+0

К сожалению, MYSQL не должен был быть там –

+2

использования И не OR. –

+0

Я не очень хорошо знаком с выражениями 'LIKE', но не должен быть' [AB]% ', а не' [A/B]% '? –

ответ

3

Как насчет объединения вместе:

SELECT 
CompanyName 
FROM Customers 
WHERE CompanyName LIKE '[A/B]%[S/P]' 
+0

I решил это с изменением OR на и, но это, кажется, сокращает код, спасибо за идею –

+0

@ MertDemirsü - использование 'и' будет работать отлично, но это, вероятно, лучший способ. – sgeddes

+1

Да, это короче и яснее, поэтому лучше. В соответствии с @Matthew Haugen в комментариях, похоже, вам также не нужно разделять между символами соответствия. –

0

Я считаю, что это должно сделать то, что вы хотите:

SELECT CompanyName 
FROM Customers 
WHERE 
    (LEFT(CompanyName,1) = "A" OR LEFT(CompanyName,1) = "B") 
    AND (RIGHT(CompanyName,1) = "S" OR RIGHT(CompanyName,1) = "P") 
Смежные вопросы