Sql server 2005 sql集合操作和where子句
有可能有这样的查询吗?我得到一个错误:Sql server 2005 sql集合操作和where子句,sql-server-2005,tsql,Sql Server 2005,Tsql,有可能有这样的查询吗?我得到一个错误: SELECT ColumnA FROM Table1 EXCEPT SELECT ColumnB FROM Table2 WHERE Table1.ColumnC = Table2.ColumnC SQL无法在my where子句中绑定Table1.colmnC。 有没有办法运行此查询?还是用另一种方法得到同样的结果? 我知道我可以使用临时表或。。。但是我想用一个集合运算 谢谢乍一看: SELECT ColumnA FROM Table1 WHERE
SELECT ColumnA FROM Table1
EXCEPT
SELECT ColumnB FROM Table2
WHERE Table1.ColumnC = Table2.ColumnC
SQL无法在my where子句中绑定Table1.colmnC。
有没有办法运行此查询?还是用另一种方法得到同样的结果?
我知道我可以使用临时表或。。。但是我想用一个集合运算
谢谢乍一看:
SELECT ColumnA FROM Table1
WHERE
NOT EXISTS (SELECT * FROM Table2 WHERE Table1.ColumnC = Table2.ColumnC)
但是,我认为您希望从columnA值中排除列B值,其中columnC与columnA和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)
括号显示了它不起作用的原因
我对你想要达到的目标有点困惑
表1中列A中的所有内容都在表2.ColumnB中没有列A,而表1.ColumnC等于表2.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