Home » SQL & PL/SQL » SQL & PL/SQL » Order by in Listagg (Oracle 11g)
Order by in Listagg [message #642048] Tue, 01 September 2015 03:57 Go to next message
Xandot
Messages: 235
Registered: January 2014
Location: India
Senior Member
Hi All,

I have one query which returns numbers in order by ASC, but its not return properly.

Query:
select  
          listagg(v, ':') within group (order by v)      
      from  
          (select  
              regexp_substr('1:2:21:23:162:41:25:24', '[^:]+', 1, rownum) v  
          from  
              dual  
                connect by rownum <= length('1:2:21:23:162:41:25:24') - length(replace('1:2:21:23:162:41:25:24', ':'))); 



but now its return like:
1:162:2:21:23:25:41

Output Expected:
1:2:21:23:25:41:162


Thanks,
Xandot
Re: Order by in Listagg [message #642050 is a reply to message #642048] Tue, 01 September 2015 04:09 Go to previous messageGo to next message
Littlefoot
Messages: 21808
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
order by TO_NUMBER(v)
Re: Order by in Listagg [message #642051 is a reply to message #642050] Tue, 01 September 2015 04:11 Go to previous messageGo to next message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
or wrap the regexp_substr call in to_number
Re: Order by in Listagg [message #642053 is a reply to message #642051] Tue, 01 September 2015 04:13 Go to previous message
Xandot
Messages: 235
Registered: January 2014
Location: India
Senior Member
Thanks ...I got the point..
Previous Topic: Struggling with Query holding temp space
Next Topic: innerjoin on variable date range
Goto Forum:
  


Current Time: Fri Apr 26 20:00:24 CDT 2024