Sql server 我想选择包含值和不包含值的UserId

Sql server 我想选择包含值和不包含值的UserId,sql-server,Sql Server,我有一张桌子 它有两列UserId,MeFr 我想选择包含值123但不包含值456或其他值的UserId 示例表M_In UserId MeFr ------------ 100 *123* 100 *456* 100 *123* 200 *123* 200 *456* 300 *123* 预期产量 UserId MeFr ------------ 300 *123* 我想用这个方法举例 范例 Select * from

我有一张桌子 它有两列UserId,MeFr 我想选择包含值123但不包含值456或其他值的UserId

示例表M_In

UserId  MeFr
------------
100     *123*
100     *456*
100     *123*
200     *123*
200     *456*
300     *123*
预期产量

UserId  MeFr
------------
300     *123*
我想用这个方法举例

范例

Select * from     
  (select i.*,                                   
         row_number() over (partition by UserId order by UserId ) as rn
  from M_In i 
   ) i 
   left join  
   (select o.*,                                   
         row_number() over (partition by UserId order by UserId ) as rn
  from M_In o
  ) o  on o.UserId = i.UserId
 where not EXISTS 

使用不存在

SELECT *
FROM   M_In m
WHERE  m.MeFr = 123
AND    NOT EXISTS
       (
           SELECT *
           FROM   M_In x
           WHERE  x.UserId = m.UserId
           AND    x.MeFr   <> 123
       )

使用不存在

SELECT *
FROM   M_In m
WHERE  m.MeFr = 123
AND    NOT EXISTS
       (
           SELECT *
           FROM   M_In x
           WHERE  x.UserId = m.UserId
           AND    x.MeFr   <> 123
       )

一个简单的连接应该在这里完成这项工作:

SELECT m.*
FROM   M_In m
join M_In m1 on m.UserId = m1.UserId
WHERE  m.MeFr = 123 and m1.MeFr <> 123

一个简单的连接应该在这里完成这项工作:

SELECT m.*
FROM   M_In m
join M_In m1 on m.UserId = m1.UserId
WHERE  m.MeFr = 123 and m1.MeFr <> 123

请解释包含值和不包含值的UserId是什么意思。感谢您的回复我想从ID='123'…的表中选择包含值123和不包含值456的UserId或其他值select*?请解释包含值和不包含值的UserId是什么意思。谢谢您的回复要选择包含值123但不包含值456或其他值的用户ID,请从ID='123'的表中选择*。。。?