Sql 选择一个字段包含相同值的所有行
我想从这样的表格中获得以下数据: 选择Sql 选择一个字段包含相同值的所有行,sql,sql-server,Sql,Sql Server,我想从这样的表格中获得以下数据: 选择User=“Ashley”或User=“Barney”和SomeID在两行上相等的所有行。我基本上需要让Ashley和Barney被列为销售人员的所有客户,但不仅仅是Ashley或Barney。他们两个 我不知道SomeID包含什么值我唯一可用的输入是“Ashley”和“Barney” 有没有办法在(Microsoft)SQL中解决这个问题?我曾尝试使用GROUP BY,但这并没有真正帮助我。要获取ID,可以使用having子句对每个值使用条件计数: se
User=“Ashley”或User=“Barney”
和SomeID
在两行上相等的所有行。我基本上需要让Ashley和Barney被列为销售人员的所有客户,但不仅仅是Ashley或Barney。他们两个
我不知道SomeID包含什么值
我唯一可用的输入是“Ashley”和“Barney”
有没有办法在(Microsoft)SQL中解决这个问题?我曾尝试使用
GROUP BY
,但这并没有真正帮助我。要获取ID,可以使用having子句对每个值使用条件计数:
select SomeID
from MyTable
group by SomeID
having count(case when Salesman = 'Ashley' then 1 else null end) > 0
and count(case when Salesman = 'Barney' then 1 else null end) > 0
然后,选择整行就像在该查询中加入一样简单:
select MyTable.Customer, MyTable.Salesman, MyTable.SomeID
from MyTable
join (
select SomeID
from MyTable
group by SomeID
having count(case when Salesman = 'Ashley' then 1 else null end) > 0
and count(case when Salesman = 'Barney' then 1 else null end) > 0
) x on MyTable.SomeID = x.SomeID
要获取ID,您可以使用having子句,并对每个值使用条件计数:
select SomeID
from MyTable
group by SomeID
having count(case when Salesman = 'Ashley' then 1 else null end) > 0
and count(case when Salesman = 'Barney' then 1 else null end) > 0
然后,选择整行就像在该查询中加入一样简单:
select MyTable.Customer, MyTable.Salesman, MyTable.SomeID
from MyTable
join (
select SomeID
from MyTable
group by SomeID
having count(case when Salesman = 'Ashley' then 1 else null end) > 0
and count(case when Salesman = 'Barney' then 1 else null end) > 0
) x on MyTable.SomeID = x.SomeID
我会这样做:
SELECT *
FROM MyTable
WHERE SomeID IN (
SELECT SomeID
FROM MyTable
WHERE Salesman IN ('Ashley','Barney')
GROUP BY SomeID
HAVING count(distinct Salesman) = 2
)
这里有一个。我会这样做:
SELECT *
FROM MyTable
WHERE SomeID IN (
SELECT SomeID
FROM MyTable
WHERE Salesman IN ('Ashley','Barney')
GROUP BY SomeID
HAVING count(distinct Salesman) = 2
)
这里有一个。我想我们可以把它改成《推销员》(Ashley)、《Barney》),而不需要两个不同的案例statements@rs.我之所以不这么做是因为我们不知道{SomeID,saller}是独一无二的。例如,如果Ashley有两行,Barney没有,我们就不想选择这一行。啊,是的,多行的值是相同的,我想我们可以将其更改为“do Salesian IN”(“Ashley”,“Barney”),而不需要两个不同的大小写statements@rs.我之所以不这么做是因为我们不知道{SomeID,saller}是独一无二的。例如,如果Ashley有两行,Barney没有,我们不想选择这一行。啊,是的,对于具有相同值的多行是这样的