注册 登录
编程论坛 SQL Server论坛

这样写为什么会出错!

lyhwjie 发布于 2012-02-13 15:55, 669 次点击
select * from [923000]
where a,b in (select a,b from [923000] group by a,b having count (*)>1)
出错信息:在应使用条件的上下文(在 ',' 附近)中指定了非布尔类型的表达式。
2 回复
#2
chtml小兵2012-02-15 10:01
应该是where后面的a,b有问题,你改成a或者b试试!
#3
netlin2012-04-22 23:06
大概看明白你的需求了:需要两个字段的内容同时作为条件。
但使用in进行集合运算时,不能象你那样,所以我把你的程序稍做修改:
select * from [923000]
where cast(a as nchar(10))+cast(b as nchar(10)) in (select cast(a as nchar(10))+cast(b as nchar(10)) from [923000] group by a,b having count (*)>1)
式中的数10,只是随便给的一个数值,具体值要根据a和b的值和类型确定。

希望对你有所启发!
1