Sql 返回条件(如果项目存在)

Sql 返回条件(如果项目存在),sql,oracle,Sql,Oracle,我有一个疑问: select colA, colB from tableA where colB in ('catA','catB') AND colA in ('value1', 'value2', ..., 'value999') 现在,此查询显示满足第一个where条件的记录valueX 如果查询满足colB-in('catA','catB')要求,我如何修改它,以便查询将显示所有999 valueX和一个Yes/No列?听起来像是您想要的 select colA, c

我有一个疑问:

select colA, colB
from tableA
where colB in ('catA','catB')
AND
colA in ('value1', 'value2', ..., 'value999') 
现在,此查询显示满足第一个where条件的记录valueX


如果查询满足
colB-in('catA','catB')
要求,我如何修改它,以便查询将显示所有999 valueX和一个Yes/No列?

听起来像是您想要的

select colA, 
       colB, 
       case when colB in ('catA','catB') 
            then 'Yes' 
            else 'No' 
        end your_column_name
  from tableA
 where colA in ('value1', 'value2', ..., 'value999') 
 order by (case colA
                when 'value1' then 1
                when 'value2' then 2
                ...
                when 'value999' then 999
            end)

您是否知道是否有办法按照我在in子句中输入的值的顺序对结果进行排序?@johncs-在一般情况下,您需要重复
order by
子句中的值。在这个特定的示例中,您可以在字符串
value
之后取数值并按其排序,但我假设您的实际数据不是如此有序。