2013-10-23 1 views
0

목록에 따라 데이터를 오름차순으로 정렬하는 방법에 문제가 있습니다. 예를 들어, mhn.kod_urusan이라는 테이블 필드 이름이 있습니다. 내가 입력 한 목록에 따라 결과를 보여주고 싶습니다. 문제는 데이터가 내가 목록에 입력 한 것을 따르지 않는 것입니다. "와 mhn.kod_urusan ('PBPTG', 'PBMT')에서"listagg의 순서는 목록 데이터에 따라 오름차순이 아닙니다.

This is my query:- 
select LISTAGG (upper(aa.kod_urusan), ', ') within Group (order by aa.kod_urusan asc) as daerah 
from 
(select distinct 
mhn.kod_urusan,kc.nama nm 
from 
mohon mhn, kod_urusan ku, kod_caw kc 
where 
mhn.kod_urusan = ku.kod(+) 
and mhn.kod_caw = kc.kod(+) 
and (mhn.trh_masuk <= sysdate) 
and mhn.kod_urusan in ('PBPTG','PBMT') 
and mhn.kod_caw = '01' 
order by mhn.kod_urusan asc)aa 


This is the result:- 
--Daerah-- 
    PBMT, PBPTG 

사람은 어떤 문제를 알아? 당신이 순서 사용자 정의 종류가 필요한 경우 결과가

확인하므로

답변

0

PBMT이 PBPTG보다 짧은, 당신은 int myordercol을하자, 테이블 mohon 일부 INT 열을 추가 할 수있다; 이 같은 쿼리를 사용해야합니다 kod_urusan의 모든 다른 값에 대한

: 당신이 필드를

+0

문제는 이제 목록에 입력 한 것과 같은 내용으로 데이터를 표시하려고합니다. 나는 조달하거나 내리는 데이터를 원하지 않습니다. 오름차순 또는 desc 제거 할 수 있지만 여전히 want.how 할 목록을 표시하지? –

+0

별개 및 그룹 오라클을 구현하려면 데이터를 정렬해야하므로 항상 오름차순 또는 내림차순으로 정렬 된 데이터를 가져 오지만 정렬되지 않으므로 일부 필드와 함께 더 복잡한 시스템이 필요합니다. 이 분야에 의해 –

+0

이 사례의 예를 보여 주시겠습니까? –

0

PBMT 정렬로이 열을 사용하는 조항하여 순서를 변경해야합니다이 후

update mohon set myordercol = 1 where kod_urusan='PBPTG'; 
update mohon set myordercol = 2 where kod_urusan='PBMT'; 
.. and so on, so in such way you're establishing custom order for this columns 

을 PBPTG는 정렬 오름차순. 반전 시키려면 내림차순으로 정렬하십시오.

+0

문제는 지금 내가 목록에 입력 한 것과 같은 데이터를 표시하고 싶습니다. 데이터를 내리고 싶지 않습니다. 오름차순 또는 desc하지만 목록에 여전히 내가 원하는 것을 표시하지 않습니다. –

+0

특정 순서를 보장하려면 무언가를 정렬해야합니다. – Andrew

관련 문제