#java #mysql #sql #spring #database
Вопрос:
У меня есть таблица со следующей информацией
ID | Статус | Тип |
---|---|---|
100 | 1 | X |
101 | 2 | Y |
102 | 3 | Y |
103 | 4 | X |
104 | 1 | Y |
И я хочу отобразить информацию о некоторых клиентах, за исключением клиентов, чей статус равен 1, и их тип X
select c from client c
where c.status = 1 or c.status = 3 and c.status !=1 and c.type !=x
Например, в этой таблице показаны только клиенты 101, 102 и 104.
Благодарный
Комментарии:
1. Почему 101, 102 и 104? Вам не нужны клиенты с типом = » X » и статусом = 1. Следовательно, должны остаться 101, 102, 103 и 104.
2. Совет: Переключитесь на стандартный SQL
<>
вместо этого древнего!=
. Чтобы избежать будущих проблем.3. Примерные данные-это здорово, но вы также должны указать ожидаемый результат.
Ответ №1:
Исключите клиентов с c.status = 1
помощью или c.type = 'x'
. Предполагается, что столбцы не являются нулевыми.
select c.*
from client c
where c.status != 1 AND c.type != 'x'
или
select c.*
from client c
where NOT (c.status = 1 OR c.type = 'x')
Комментарии:
1. Я думаю , вам нужно переключиться И/ИЛИ. (Но вопрос немного неясен, поэтому я могу ошибаться.)