我有一个SQL查询,如下所示
从表a中选择不同的NVL(a.column,'EMPTY')列,其中a.POSTCODE ='MNOP')
列的可能值为X,Y和Z。
我想以这样的方式修改查询:如果查询返回多个值,如下所示
Ex:X,Y或X,Z或Y,Z或X,Y,Z
然后我想只返回一个值,如下所示
表示X,Y - >我需要返回X
对于Y,Z - >;我需要回Y 对于X,Z - >我需要返回X
(优先级从X到Z,顺序相同)
我正在尝试在子查询中使用count(*)
和其他一些组合,到目前为止还没有成功。任何帮助都会很棒
答案 0 :(得分:0)
您可以使用rownum伪列来获取结果集的第一行。按列升序排序,你就是
select * from mytable
where rownum=1
order by mycol ;
在您的情况下,请尝试此操作以检索所需的列
Select distinct NVL(a.column,'EMPTY') column
from table a
where a.POSTCODE ='MNOP'
and rownum=1
order by a.column
PS: - “column”是一个无效的标识符,作为列名