| sql query [message #560870] |
Tue, 17 July 2012 08:54  |
 |
solugenix
Messages: 2 Registered: June 2012 Location: hyderabad
|
Junior Member |
|
|
i will give input like 123456
this number has to divide
and display like through sql or plsql
1
2
3
4
5
6
|
|
|
|
|
|
| Re: sql query [message #560874 is a reply to message #560870] |
Tue, 17 July 2012 09:05   |
muralikri
Messages: 638 Registered: August 2011 Location: chennai
|
Senior Member |

|
|
Try like...
with test as
(select replace ((select trim(regexp_replace('123456789','(.)','\1 ')) from dual),' ',',') col from dual)
select regexp_substr(col, '[^,]+', 1, level) result
from test
connect by level <= length(regexp_replace(col, '[^,]+')) + 1;
|
|
|
|
|
|
| Re: sql query [message #560877 is a reply to message #560874] |
Tue, 17 July 2012 10:19   |
 |
Michel Cadot
Messages: 54672 Registered: March 2007 Location: Nanterre, France, http://...
|
Senior Member Account Moderator |
|
|
@muralikri
Why do you put complex thing like:
(select replace ((select trim(regexp_replace('123456789','(.)','\1 ')) from dual),' ',',') col from dual)
when just a simple:
(select regexp_replace('123456789','(.)','\1,') from dual)
does the same thing?
Regards
Michel
|
|
|
|
|
|
| Re: sql query [message #560881 is a reply to message #560874] |
Tue, 17 July 2012 10:45  |
Solomon Yakobson
Messages: 1442 Registered: January 2010
|
Senior Member |
|
|
muralikri wrote on Tue, 17 July 2012 10:05Try like...
Don't overcomplicate. You don't need REGEXP for that:
SELECT SUBSTR('123456',LEVEL,1) VAL
FROM DUAL
CONNECT BY LEVEL <= LENGTH('123456')
/
V
-
1
2
3
4
5
6
6 rows selected.
SQL>
SY.
|
|
|
|