Hi, I need an ouput of difference in two Strings
Declare @.StringA varchar(100), @.StringB varchar(100)
@.StringA = 'A,B,C'
@.StringB = 'A,C,C'
The values are seperated in the strings by ','
Since B value in first string changed to C value in the second string
I want to return the difference between the two strings as 'B,C'
Can anyone help me with this.
ThanksWell, you could write a user-defined function that accepts two strings and steps through them each one character at a time to detect differences. But this is a really goofy setup. Can't you normalize your data? Storing data in comma-delimited strings is right up there at the top of the list of DBA cardinal sins. In standard 3rd-normal form this request would be very easy.|||Plus depending on what you mean by "difference", your solution could also be different.
A comma-delimited list is not really a "string" that you can detect differences in...I mean, it is, but not the way you are using it (as I understand your question, anyway).
I mean, is "A,B,C" the same as "B,C,A" or "C,B,A"? Or are those supposed to be "different" strings?
There are quite a few procedures, functions, and other code examples on the 'net and in the dbforums archives about sucking elements out of CSV lists...but then you still have to deal with the now free-floating elements (again, does order matter?)
Yeah, like The Blind One says...normalize your data...or at least maybe create a temp table from the strings? Naaahhh...normalize your data.
Go ahead, we'll wait ;)
No comments:
Post a Comment