|
ValterBorges
Master Smack Fu Yak Hacker
1429 Posts |
Posted - 2001-05-17 : 17:26:26
|
| I have a table which has columns: ID, NameValuePairsI'm trying to break these into table 2with columns:ID, Name, Valueso if Table 1 has a row like:1, 'name1=value1;name2=value2'then Table 2 would get1, name1, value11, name2, value2Here is what I have so far, I'm sure there is a much better way to do this. Can someone help.DECLARE @NameValuePairs nvarchar(4000)DECLARE @Pair nvarchar(4000)DECLARE @Name nvarchar(4000)DECLARE @Value nvarchar(4000)SELECT @NameValuePairs = 'name1=value1;name2=value2;name3=value3'SELECT @ID = 1WHILE CharIndex(';', @NameValuePairs) <> 0BEGIN SELECT @Pair = Substring(@NameValuePairs, 1, CharIndex(';', @NameValuePairs) - 1) SELECT @NameValuePairs = Substring(@NameValuePairs, CharIndex(';', @NameValuePairs) + 1, Len(@NameValuePairs)) SELECT @Name = Substring(@Pair, 1, CharIndex('=', @Pair) - 1) SELECT @Value = Substring(@Pair, CharIndex('=', @Pair) + 1, Len(@Pair)) PRINT @Name PRINT @Value INSERT INTO SUBSTITUTION(name,value) VALUES (@Name,@Value)END SELECT @Pair = @NameValuePairs SELECT @NameValuePairs = Substring(@NameValuePairs, CharIndex(';', @NameValuePairs) + 1, Len(@NameValuePairs)) SELECT @Name = Substring(@Pair, 1, CharIndex('=', @Pair) - 1) SELECT @Value = Substring(@Pair, CharIndex('=', @Pair) + 1, Len(@Pair)) PRINT @Name PRINT @Value INSERT INTO SUBSTITUTION(name,value) VALUES (@Name,@Value) |
|