0

以下のようなSQLクエリがあります

テーブル a から個別の NVL(a.column,'EMPTY') 列を選択します。ここで a.POSTCODE ='MNOP')

列の可能な値は、X、Y、および Z です。

クエリが以下のように複数の値を返す場合、そのような方法でクエリを変更したいと思います

例 : X,Y または X,Z または Y,Z または X,Y,Z

次に、以下のように値を 1 つだけ返したいと思います

for X,Y ->
Y,Z に対して X を返す必要がある -> X,Z に対して Y を返す必要が
ある -> X を返す必要がある

(優先順位はXからZまで、同順)

count(*)サブクエリで と他のいくつかの組み合わせを使用しようとしていますが、これまでのところ成功していません。どんな助けでも素晴らしいでしょう

4

1 に答える 1

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:-「列」は列名として無効な識別子です

于 2013-06-24T10:37:42.537 に答える