Below is a nice stored procedure written to demonstrate looping through a temporary table and using the CASE statement.
Hope this helps.
Ishan
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8j6CvyCjQOs5FbK6wq5m1sqYLT9_LTBPyeVOoHj6TzkggyesWA5YsBav67dqWRLGY24VJqSiSFmkt99TTg79vfwDwWdmSywnWEW4stFYhHpIhcdQJnxdNjvnIIlSTMFfkV9OIj3I-s_e/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;"><code style="color:#000000;word-wrap:normal;"> -- Insert statements for procedure here CREATE TABLE #temp_tblMessage ( nId INT IDENTITY(1,1), aEventId INT, nGlobalCaseId INT, mMsgContent NTEXT, mMsgHTMLContent NTEXT, dCDServerTime DATETIME, nType INT, nMediaType INT, nStatus INT, ) INSERT #temp_tblMessage SELECT aEventID, nGlobalCaseID, mMsgContent, mMsgHTMLContent, dCDServerTime, nType, nMediaType, nStatus FROM dbo.tblMessage WHERE nGlobalCaseId = @nInteractionId AND (nType = 32 OR nType = 64 or nType = 96) DECLARE @tFullMessage NVARCHAR(MAX) DECLARE @tHTMLMessageContent NVARCHAR(MAX) DECLARE @tPlainMessageContent NVARCHAR(MAX) DECLARE @tMessage NVARCHAR(MAX) DECLARE @tMessagePrefix NVARCHAR(MAX) DECLARE @dMessageDatetime DATETIME DECLARE @nType INT DECLARE @nCount INT DECLARE @nIndex INT SET @tFullMessage = '' SET @nIndex = 0 SELECT @nCount = Count(nId) From #temp_tblMessage WHILE (@nCount > @nIndex) BEGIN SET @nIndex = @nIndex + 1 SELECT @dMessageDatetime = dCDServerTime, @tPlainMessageContent=mMsgContent, @tHTMLMessageContent = mMsgHTMLContent, @tMessagePrefix = CASE nType WHEN 32 THEN 'Message sent by you at : ' WHEN 64 THEN 'Message from System at : ' WHEN 96 THEN 'Message from System at : ' END FROM #temp_tblMessage WHERE nId = @nIndex SET @tMessagePrefix = @tMessagePrefix + CAST(@dMessageDatetime AS NVARCHAR(255)) + CHAR(13) SET @tMessage = ISNULL(NULLIF(@tPlainMessageContent, ''), @tHTMLMessageContent) SET @tMessage = @tMessagePrefix + @tMessage SET @tFullMessage = @tFullMessage + @tMessage + CHAR(13) END SET @tMessageContent = @tFullMessage </code></pre>
No comments:
Post a Comment