|
|
Archives of the TeradataForum
Message Posted: Wed, 31 Dec 2003 @ 21:01:53 GMT
Subj: | | Re: Extracting characters from a string |
|
From: | | Scott Thompson |
The following works and you can set it up to expect as many or as few '$' as you want. if it doesn't find any '$', it'll just return a
NULL string. you could even change that to return a meaningful string like "no $ found within substring" or whatever. of course you'll
probably need to change this so that the subquery is reading in a table variable from the outer query instead of a string literal. heres
the code :
sel b.outstring1, b.outstring2
from
(select
(case
when mindex('FDB$H$03121622FDBPKG1_ETL', '$') > 0
then substring('FDB$H$03121622FDBPKG1_ETL' from 1 for
mindex('FDB$H$03121622FDBPKG1_ETL', '$') - 1)
else NULL
END) AS OUTSTRING1,
(case
when mindex('FDB$H$03121622FDBPKG1_ETL', '$') > 0
then substring('FDB$H$03121622FDBPKG1_ETL' from
mindex('FDB$H$03121622FDBPKG1_ETL', '$') + 1)
else NULL
END) AS REMAINDER1,
(case
when mindex(REMAINDER1, '$') > 0
then substring(REMAINDER1 from 1 FOR mindex(REMAINDER1, '$') -
1)
else NULL
END) AS OUTSTRING2,
(case
when mindex(REMAINDER1, '$') > 0
then substring(REMAINDER1 from mindex(REMAINDER1, '$') + 1)
else NULL
END) AS REMAINDER2) as b
hope this is helpful,
-scott t.
| |