我们说我有表Table1
:
|Column1|Column2|Column3|
|1 |25 |a |
|2 |48 |a |
|3 |25 |b |
|4 |25 |d |
|5 |16 |e |
我有命令:
"SELECT Column1 FROM TABLE1 WHERE Column2 = 25)";
所以现在的输出是:
1
3
4
现在我想做同样的事情,但如果column3 = a,那么不要选择那一行,所以现在输出:
3
4
现在我希望从txt文件加载A,但在该文件中会有更多值(a,b,d,g,u ...)
基本上我想
SELECT [columns] FROM [table] WHERE [column1] = 1 EXCEPT [column2] = [values from txt]
我只需要命令逻辑,我知道其他一切。
答案 0 :(得分:4)
添加AND [column2] NOT IN [来自txt的值]:
SELECT [columns] FROM [table]
WHERE [column1] = 1 AND [column2] NOT IN (a, b, d, g, u...)
答案 1 :(得分:0)
如果您熟悉UNION
,请了解EXCEPT
以非常类似的方式运作,例如两个表表达式必须具有相同数量的列,具有相同的数据类型,按从左到右的顺序等。
SELECT [columns]
FROM [table]
WHERE [column1] = 1
EXCEPT
SELECT [columns]
FROM [table]
WHERE [column2] = [values from txt]
您使用EXCEPT
的方式更像是SQL的WHERE..ALL
语法,例如类似的东西:
SELECT [columns]
FROM [table]
WHERE [column1] = 1
AND [column2] <> ALL ( SELECT [values from txt] FROM ?somewhere? );