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
之后取数值并按其排序,但我假设您的实际数据不是如此有序。