首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SQL ()筛选结果

使用SQL ()筛选结果
EN

Stack Overflow用户
提问于 2021-11-24 17:01:29
回答 1查看 161关注 0票数 1

我使用的软件将只允许我进入的地方.SQL语句的部分。

所以我可以在where子句中使用EXISTS ()语句..。

然而,

这个查询..。

代码语言:javascript
运行
复制
SELECT DISTINCT Left([PR].[WBS1],5)&"-000" AS WBS1
FROM PR
GROUP BY Left([PR].[WBS1],5), Right([PR].[WBS1],3), PR.Status
HAVING ((Right(PR.WBS1,3)<>'000') And ((PR.Status)='A') And (Count(PR.Org))>1)

...returns 78唱片.

然而,

实际上,与存在于何处的查询相同.

代码语言:javascript
运行
复制
SELECT PR.WBS1 FROM PR WHERE EXISTS (

SELECT DISTINCT Left([PR].[WBS1],5)&"-000" AS WBS1
FROM PR
GROUP BY Left([PR].[WBS1],5), Right([PR].[WBS1],3), PR.Status
HAVING ((Right(PR.WBS1,3)<>'000') And ((PR.Status)='A') And (Count(PR.Org))>1)

)

...returns all 31,114记录

和我真的不明白为什么。

我做错了什么,有人能给我解释一下吗?

编辑:我可以在这里放什么来返回相同的78条记录:

代码语言:javascript
运行
复制
SELECT * FROM PR WHERE (

     ?

)

我使用的会计软件只允许我编辑“where”部分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-24 17:09:49

如果括号内的子查询至少返回1行,则EXISTS返回TRUE;如果子查询不返回任何行,则返回FALSE

在您的示例中,子查询返回78行,因此EXISTS返回TRUE

因此,您的第二个查询相当于:

代码语言:javascript
运行
复制
SELECT PR.WBS1 FROM PR WHERE 1=1 -- any boolean expression that returns TRUE

或者简单地说:

代码语言:javascript
运行
复制
SELECT PR.WBS1 FROM PR 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70100111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档