嗨伙计们
我对SQL这个网站也很陌生。
我有如下数据,我想选择除失败以外的所有记录" BTM死"对于Train" 1101",这意味着只会选择记录1,3。
*record* | *Train* | *Failure* |
1 | 1101 | BTM dead |
2 | 1101 | relay failure |
3 | 1101 | BTM dead |
4 | 2101 | relay failure |
5 | 2101 | BTM dead |
6 | 2101 | relay failure |
这是我试过的......
SELECT failure_table.record, failure_table.Train, failure_table.Failure
FROM failure_table
WHERE failure_table.Train <> 1101 And failure_table.Failure <> "BTM dead";
但事实证明只选择了4,6条记录 请问我有什么建议吗?它会是什么声明?
谢谢!
答案 0 :(得分:5)
SELECT failure_table.record, failure_table.Train, failure_table.Failure
FROM failure_table
WHERE NOT (failure_table.Train = 1101 And failure_table.Failure = 'BTM dead')
有时最简单的方法是使用NOT。
因为你知道你想要的一切除了当火车= 1101和失败='BTM'时,只需说明然后告诉sql你想要反过来说NOT。另请注意,在识别字符串而非双引号时需要单引号,否则它会认为它是一列。
答案 1 :(得分:3)
您使用AND
代替OR
:
SELECT failure_table.record, failure_table.Train, failure_table.Failure
FROM failure_table
WHERE failure_table.Train <> 1101 OR failure_table.Failure <> 'BTM dead';