2015-07-08 2 views
-1

Я пытаюсь создать оператор выбора и отфильтровать некоторые места, у меня есть адреса магазинов с именами, т.е.SQL Выберите значения, где имени не нравится, кроме одного значения

"Alpha" 
"Beta" 
"Gamma" 

И у меня есть пакгауз, имена которых начинается с Warehouse, т.е.

"Warehouse 1" 
"Warehouse 2" 
"Warehouse 3". 

Я пытаюсь иметь отборное заявление отфильтровывать все склады КРОМЕ «Склад 35», это возможно? Или единственный способ исключить склад на складе?

Текущий запрос:

SELECT * FROM Locations where LocationName not like ('Warehouse%') 
+1

может показать данные образца и ожидаемый результат – Sachu

+0

Уверенные мои данные содержат Магазины и Склады в одном и том же столе, есть 50 магазинов и 60 складов. Я использую Visual Studio для создания некоторых отчетов для клиента, но он не хочет получать информацию о 60 складах в отчетах, он просто хочет увидеть 50 магазинов и 1 склад, поэтому мне нужно отфильтровать другое 59 Склады. Я ищу SELECT, который может исключить все хранилища, кроме одного. – YorchAMC

+0

Ладно, это не имеет никакого смысла! Если ваш клиент хочет получить отчет только с «Складской дом 35» и со всеми другими магазинами, которые могут быть привязаны к другим местам склада. Как вы собираетесь исключить эти места склада и все еще приносить имена магазинов? Это практически невозможно ИМО! – FutbolFan

ответ

2

Вы можете комбинировать альтернативные фильтры OR, например, выбрать Warehouse 35 и все, что не начинается с Склад:

SELECT * 
FROM Locations 
WHERE LocationName = 'Warehouse 35' OR LocationName NOT LIKE 'Warehouse%'; 

Или в программировании, как правило, включено, то есть А или В истинно, если истинно, B истинно, или оба истинны.

+0

О, извините, я хотел отфильтровать все склады, но не магазины, и просто держать склад 35 с магазинами. Произошедший результат должен получить мне все магазины и результаты на складе 35. – YorchAMC

+0

@YorchAMC Если вам действительно нужна помощь, вам нужно предоставить некоторые примеры данных и структуру таблицы. – FutbolFan

0
create table loc 
    (locations varchar(20)); 

insert into loc values ('alpha') 
insert into loc values('beta') 
insert into loc values('gamma') 
insert into loc values('warehouse 1') 
insert into loc values('warehouse 2') 
insert into loc values('warehouse 3') 
insert into loc values('warehouse 35') 


    select * 
    from loc 
    where locations not like 'warehouse%' 
      or locations = 'warehouse 35' 


    o/p will be 

locations 
alpha 
beta 
gamma 
warehouse 35 

Fiddle

Это вы хотели?

+0

@YorchAMC это результат, который вы ищете? – Sachu

+0

Как это отличается от ответа ниже от @reaanb? – FutbolFan

+0

@nepalirookie, когда я создал скрипку, вышеприведенный ответ был только до SELECT * FROM Locations ГДЕ LocationName = 'Склад 35'' позже он отредактировал в соответствии с комментарием OP, я думаю .. – Sachu

Смежные вопросы