查询以从表中仅获取一项

Posted

技术标签:

【中文标题】查询以从表中仅获取一项【英文标题】:Query to fetch just one item from a table 【发布时间】:2013-11-25 17:04:00 【问题描述】:

hr_org 包含以下列:-

Org id  Spoc  Name
123     HR    A
123     IT    A
123     VP    A
67      IT    B
78      HR    C
78      IT    C

我想创建一个查询,其中仅包含定义了 IT Spoc 的那些名称。

例如:-

select name 
from hr_org
where SPOC ='IT'

会给A和B 但对于另一个 spoc(HR AND VP) 来说,也遭到了蔑视。我的输出应该只取 B。

【问题讨论】:

为什么它会获取B?将B 定义为要获取的 3 个正确之一的规则是什么? 【参考方案1】:
select name 
from hr_org
where SPOC ='IT' and name not in (select name from hr_org where SPOC<>'IT')

【讨论】:

【参考方案2】:
select *
from hr_org h1
where spoc='IT'
and not exists (
    select 1
    from hr_org h2
    where h2.spoc <> h1.spoc
    and h2.name = h1.name
)

【讨论】:

以上是关于查询以从表中仅获取一项的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 查询临时表以从表中检索 2 行

Sqoop 导入查询以从表中传输 1000 条随机记录?

如何编写 SQL 查询以从表中提取 50% 的记录?

将 SQL Server 存储过程转换为 Oracle 过程以从表中查询

从表中仅选择几列以使用 C# Web API 上的 Odata Select 查询进行映射

如何从表中获取所有数据,包括表 ID