是否有可能有这样的查询(我收到提示):SQL设置操作和where子句
SELECT ColumnA FROM Table1
EXCEPT
SELECT ColumnB FROM Table2
WHERE Table1.ColumnC = Table2.ColumnC
SQL不能绑定Table1.colmnC在我的where子句。 有没有什么办法可以运行这个查询?或另一种方式来获得相同的结果? 我知道我可以使用临时表或...但我想用set操作来做到这一点。
感谢
是否有可能有这样的查询(我收到提示):SQL设置操作和where子句
SELECT ColumnA FROM Table1
EXCEPT
SELECT ColumnB FROM Table2
WHERE Table1.ColumnC = Table2.ColumnC
SQL不能绑定Table1.colmnC在我的where子句。 有没有什么办法可以运行这个查询?或另一种方式来获得相同的结果? 我知道我可以使用临时表或...但我想用set操作来做到这一点。
感谢
乍一看:
SELECT ColumnA FROM Table1
WHERE
NOT EXISTS (SELECT * FROM Table2 WHERE Table1.ColumnC = Table2.ColumnC)
不过,我认为这是这一点,你想从columnA值,其中columnC匹配columnsA和B排除B列的值:
SELECT ColumnA FROM Table1
WHERE
NOT EXISTS (
SELECT * FROM Table2
WHERE Table1.ColumnC = Table2.ColumnC AND Table1.ColumnA = Table2.ColumnB)
您在做什么是
(SELECT ColumnA FROM Table1)
EXECPT
(SELECT ColumnB FROM Table2
WHERE Table1.ColumnC = Table2.ColumnC)
括号显示为什么它不起作用。
我对你想要达到的目标有些困惑。
它是TableA中ColumnA的所有内容,其中ColumnA不在Table2.ColumnB中,Table1.ColumnC等于Table2.ColumnC?
SELECT ColumnA FROM Table
WHERE EXISTS (SELECT * FROM Table2
WHERE Table1.ColumnC = Table2.ColumnC
AND Table1.ColumnA <> Table2.ColumnB)
要刚修好您所查询的错误,如果以下和ColumnA的ColumnB数据类型相同应该运行正常。
SELECT ColumnA FROM Table1
EXCEPT
SELECT ColumnB FROM Table2
Except
比较结果集。没有关于在某列上加入结果集的概念。