SELECT 列 EXCEPT 值是从文件加载的
SELECT columns EXCEPT values that are loaded from file
假设我有 table 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,那么就不要 select 那一行,所以现在的输出是:
3
4
现在我想从 txt 文件加载 A,但在该文件中会有更多值(a、b、d、g、u...)
基本上我想
SELECT [columns] FROM [table] WHERE [column1] = 1 EXCEPT [column2] = [values from txt]
我只需要命令的逻辑,其他我都知道。
添加 AND [column2] NOT IN [values from txt]:
SELECT [columns] FROM [table]
WHERE [column1] = 1 AND [column2] NOT IN (a, b, d, g, u...)
如果您熟悉 UNION
,那么就会知道 EXCEPT
的工作方式非常相似,例如两个 table 表达式必须具有相同的列数和相同的数据类型,从左到右的顺序等等。
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? );
假设我有 table 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,那么就不要 select 那一行,所以现在的输出是:
3
4
现在我想从 txt 文件加载 A,但在该文件中会有更多值(a、b、d、g、u...)
基本上我想
SELECT [columns] FROM [table] WHERE [column1] = 1 EXCEPT [column2] = [values from txt]
我只需要命令的逻辑,其他我都知道。
添加 AND [column2] NOT IN [values from txt]:
SELECT [columns] FROM [table]
WHERE [column1] = 1 AND [column2] NOT IN (a, b, d, g, u...)
如果您熟悉 UNION
,那么就会知道 EXCEPT
的工作方式非常相似,例如两个 table 表达式必须具有相同的列数和相同的数据类型,从左到右的顺序等等。
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? );