Sascha Manns Ответов: 1

Как выбрать, где данный статус не является истинным и не ложным


Я сяду за этот столик:
|OrderID|Criterion|Status|
|304    |1        |true  |
|304    |2        |false |
|304    |3        |4     |
|305    |1        |false |
|305    |2        |true  |
|305    |3        |4     |


Теперь я хочу выбрать, где OrderID является заданным, а где статус не является истинным или ложным.

Что я уже пробовал:

select * from tblAuftragMulti
where OrderId = '305' and Status != 'true'
or OrderId = '305' or Status != 'false'

1 Ответов

Рейтинг:
7

OriginalGriff

Попробуй:

SELECT * FROM tblAuftragMulti
WHERE OrderId = '305' AND 
      Status != 'true' AND 
      Status != 'false'
Но вы не должны хранить такие данные: вы часто повторяете строки, и это приводит к ошибкам, когда кто-то добавляет строку с "TRUE" или "False", и она не соответствует вашим критериям. Вероятно, вам будет лучше иметь отдельную таблицу, содержащую текстовые строки и внешний ключ к идентификатору; затем используйте соединение, чтобы получить текст обратно, если он вам нужен.