试图根据where中的结果应用逻辑来拉取某些行

问题描述 投票:0回答:1

我有一个问题,在一个完美的世界中,会拉动,例如......

如果Bill有3行数据:

  • 有待
  • 有待
  • 活性

我正在尝试应用逻辑,如果患者处于活动状态我只想要显示该行:活动

但如果Sara有3行:

  • 有待
  • 有待
  • 有待

我想要所有3个Pendings展示。只有当患者具有活动状态时,才会显示活动显示

select distinct
        MRN
      ,[RX Number]
      ,[Status]

where Status = case when d.Status = 'ACTIVE' then Status 
                    when d.Status <> 'ACTIVE' then Status  end

现在我的结果正在拉动(对于上面的比尔示例)

  • 有待
  • 有待
  • 活性

代替

  • 活性
sql-server-2012 logic where clause
1个回答
0
投票

你可以使用EXISTS

IF EXISTS (SELECT [Status] FROM [dbo].[Table1] WHERE [Status] = 'ACTIVE' AND [Patient] = 'Bill')
    SELECT DISTINCT MRN, [RX Number], [Status]
    FROM [dbo].[Table1]
    WHERE [Patient] = 'Bill'
        AND [Status] = 'ACTIVE'
ELSE
    SELECT DISTINCT MRN, [RX Number], [Status]
    FROM [dbo].[Table1]
    WHERE [Patient] = 'Bill'
© www.soinside.com 2019 - 2024. All rights reserved.