最近用select进行数据筛选,碰到下面的这个错误:
---子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
查询语句为:
SELECT * FROM (SELECT *,(select cfzt from Zc_Cfb where kc.guid=zcguid) AS cfzt FROM Zc_Kcb AS kc WHERE kc.djr LIKE '%11203%' AND kc.sl > 1)as t where (cfzt is null or cfzt='01-暂存')
检查后发现问题出在:
select cfzt from Zc_Cfb where kc.guid=zcguid
该问题 在于用了'='于select子查询之前,但是select子查询返回的不止一个元素,所以出错了。
即:zcguid 可能有多个一样的,但实际中查询必须为 一对一的,否则会报上述的错误。