我不确定如何描述这个,但我正在尝试检索所有具有公共索引并在单独字段中具有特定值的记录...
表:回应
responseID objective
===============================
AAA Posted
AAA Aligned
AAB Aligned
AAB Null
AAC Posted
AAC Null
根据目标字段中的“已发布”值,查询将从表格响应中返回以下内容:
responseID objective
===============================
AAA Posted
AAA Aligned
AAC Posted
AAC Null
非常感谢任何帮助。特别是对词汇术语的帮助,因为我只是从查询开始。
答案 0 :(得分:2)
您正在寻找responseId
中有值的任何键的行,并且已发布'在objective
列中。 SQL术语是"存在" - 此查询中是否存在任何行?
这应该可以正常工作:
DECLARE VARCHAR(50) @objective = 'Posted';
select data1.*
from data data1
where exists
(
select 1
from data data2
where data2.responseid = data1.responseid
and data2.objective = @objective
);
答案 1 :(得分:1)
select r.responseid, r.objective
from response r
join (select responseid from response where objective = 'Posted') v
on r.responseid = v.responseid
答案 2 :(得分:0)
使用exists
运算符获取具有目标Response
的{{1}}。
'Posted'
答案 3 :(得分:0)
我认为您可以使用exists
做您想做的事情 - 也就是说,获取其中一个目标为Posted
的所有回复:
select r.*
from response r
where exists (select 1
from response r2
where r2.responseid = r.responseid and r2.objective = 'Posted'
);