如何在sql的另一个字段中找到具有某些特定值的字段

时间:2014-08-04 07:19:29

标签: sql sql-server

我有2列MessageIDFlowStatusID

我想找到MessageID的{​​{1}}是一个具有特殊序列的特定值。

例如,我想查找FlowStatusID,其中MessageID包含这些数字的序列:105,81,21

FlowStatusID

结果必须为2,4

2 个答案:

答案 0 :(得分:0)

试试这个

select MessageIDfrom t group by MessageID having count(*) =3 ;

或者

select MessageID from (
select t.MessageID from t where FlowStatusID=21 
union all 
select t.MessageID from t where FlowStatusID=81 
union  all
select t.MessageID from t where FlowStatusID=105 )
as tt group by MessageID having count(*) =3

答案 1 :(得分:0)

您没有提到数据库类型,但我发现了一些其他票据,解释了如何连接多个记录中的值。

Postgress:Concatenate multiple result rows of one column into one, group by another column

Oracle:SQL Query to concatenate column values from multiple rows in Oracle

您可以在具有相等匹配的条件中使用此连接字段:

where myconcatresult = '21,81,105'

我不知道这将如何表现:)