|
hs123456
Starting Member
6 Posts |
Posted - 2010-02-05 : 10:52:39
|
| Here is the sproc:DECLARE @submission NVARCHAR(MAX)DECLARE @temp NVARCHAR(MAX)DECLARE @fName NVARCHAR(MAX)DECLARE @fValue NVARCHAR(MAX)DECLARE @SQL NVARCHAR(MAX)CREATE TABLE #SplitValues (fName NVARCHAR(MAX),fvalue NVARCHAR(MAX))DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FORSelect Replace(cast(MyTable.Submission as nvarchar(max)),'***', ';') from MyTableOPEN db_cursor FETCH NEXT FROM db_cursor INTO @submissionWHILE @@FETCH_STATUS = 0BEGINWHILE len(@submission) > 0BEGINSET @fName = (select substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) -1) from MyTable)SET @fValue = (select substring(substring(@submission, len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) +2)), len(@submission)-len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) -1))), 0, charindex(';',substring(@submission, len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) +2)), len(@submission)-len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) -1))))) from MyTable)INSERT INTO #SplitValues VALUES (@fName,@fValue)SET @submission = (substring(@submission, 0, len(@submission) - len(@fValue)))ENDFETCH NEXT FROM db_cursor INTO @submissionENDCLOSE db_cursorDEALLOCATE db_cursor-----------------------------------------------------------Here is the problem:Select Replace(cast(MyTable.Submission as nvarchar(max)),'***', ';') from MyTableThis query will give me all the records:1. ;columnname1; columnvalue1 ;columnname2; columnvalue2 ;columnname3; columnvalue32. ;columnname1; columnvalue1 ;columnname2; columnvalue2 ;columnname3; columnvalue33. ;columnname1; columnvalue1 ;columnname2; columnvalue2 ;columnname3; columnvalue3when I use cursor, it is bringing back all records and not just 1st record, and throws Error:"Subquery returned more than 1 value" at SET @fNameSET @fName = (select substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) -1) from MyTable)This query should give me:columnname1SET @fValue = (select substring(substring(@submission, len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) +2)), len(@submission)-len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) -1))), 0, charindex(';',substring(@submission, len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) +2)), len(@submission)-len(substring(@submission, 2, charindex(';', substring(@submission, 2, len(@submission)-1 )) -1))))) from MyTable)This query should give me:columnvalue1Please Help! |
|