October 2, 2014 at 3:53 pm
I have an interesting situation.
I need to get the data from between the 8th and 9th instance of the ";" character.
For instance, I have a data set that looks like this:
Record 1: 0;0;0;0;22.68;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
Record 2: 74.52;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
Record 3: 0;0;0;0;23.04;0;0;0;99.84;0;0;0;0;0;0;0;0;0;0;0
Record 4: 1.08;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
Record 5: 1.476;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
Record 6: 1.116;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
I would need to grab 99.84 from record 3 and 0 from the rest.
How should I go about doing this?
October 2, 2014 at 4:17 pm
If you have access to the database, you can do this:
First, you need Jeff Moden's handy DelimitedSplit8K function, which is here[/url].
Then your query would look something like this:
SELECT col1, split.ItemNumber, Item=split.Item
FROM
(SELECT '0;0;0;0;22.68;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0' AS col1
UNION ALL
SELECT '74.52;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0'
UNION ALL
SELECT '0;0;0;0;23.04;0;0;0;99.84;0;0;0;0;0;0;0;0;0;0;0') x
CROSS APPLY dbo.DelimitedSplit8K(col1,';') split
WHERE split.ItemNumber = 9;
Otherwise, you'd use the SPLIT function in SSRS.
=Split("0;0;0;0;23.04;0;0;0;99.84;0;0;0;0;0;0;0;0;0;0;0",";").GetValue(4)
returns 23.04
October 3, 2014 at 9:04 am
That did it!
Thank you very much!
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply