Solution to TSQL Beginners Challenge 15
DECLARE @t TABLE(ID INT IDENTITY, Sentence VARCHAR(1000))
INSERT INTO @t(Sentence)
SELECT 'This is T-SQL Beginners Challenge #15' UNION ALL
SELECT 'I am a challenge competitor' UNION ALL
SELECT 'You cannot use RBAR, cursors, loops etc. in your program'
;With T AS
(
Select ID,i=1, j=CHARINDEX(' ',Sentence,1),Sentence,CAST('' as varchar(100)) Reverse_Sentence From @t
Union All
Select ID,i=j+1,j=CHARINDEX(' ',Sentence+' ',j+1),Sentence,CAST(SUBSTRING(Sentence,i,j-i)+' '+Reverse_Sentence as varchar(100)) Reverse_Sentence
From T Where j>0
) Select ID,Sentence,Reverse_Sentence From T Where j=0 Order by ID
Tags: