Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
lata
Starting Member
6 Posts |
Posted - 2011-09-20 : 09:47:00
|
Hi,suppose the string is, Hi How are you?The output should be you? are How HiRegards,lc |
|
ehorn
Master Smack Fu Yak Hacker
1632 Posts |
Posted - 2011-09-20 : 10:02:09
|
Perhaps something like;declare @string varchar(100); set @string = 'Hi How are you?'declare @delimiter char(1); set @delimiter = ' 'declare @newString varchar(100); set @newString = ''SELECT @newString = @newString + ' ' + LTRIM(RTRIM(NULLIF(SUBSTRING(@delimiter + @string + @delimiter, Number, CHARINDEX(@delimiter, @delimiter + @string + @delimiter, Number) - Number), ''))) FROM master..spt_values WHERE Type = 'P' AND Number <= LEN(@delimiter + @string + @delimiter) AND SUBSTRING(@delimiter + @string + @delimiter, Number - 1, 1) = @delimiter AND CHARINDEX(@delimiter, @delimiter + @string + @delimiter, Number) - Number > 0 AND number > 0ORDER BY number DESC SELECT @newString as newString |
|
|
flamblaster
Constraint Violating Yak Guru
384 Posts |
Posted - 2011-09-20 : 10:10:30
|
If it's only going to be 4 words, you could use parsename:[CODE]declare @sql varchar(30)set @sql='Hi How are you?'SELECT PARSENAME(REPLACE(@sql,' ','.'),1)+' '+ PARSENAME(REPLACE(@sql,' ','.'),2)+' '+ PARSENAME(REPLACE(@sql,' ','.'),3)+' '+ PARSENAME(REPLACE(@sql,' ','.'),4)[/CODE] |
|
|
rajarajan
Starting Member
48 Posts |
Posted - 2011-09-20 : 13:10:48
|
YOU CAN USE THIS FUNCTION select REVERSE('HI HOW ARE U ') |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-09-20 : 13:15:41
|
quote: Originally posted by rajarajan YOU CAN USE THIS FUNCTION select REVERSE('HI HOW ARE U ')
nope it will give output as U ERA WOH IHwhich is not OP wantsOP was asking to reverse the sequences of words in string without reversing words themselves------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
rajarajan
Starting Member
48 Posts |
Posted - 2011-09-20 : 13:19:30
|
USE THIS declare @sql varchar(40)set @sql='Hi How are you?'SELECT PARSENAME(REPLACE(@sql,' ','.'),1)+' '+ PARSENAME(REPLACE(@sql,' ','.'),2)+' '+ PARSENAME(REPLACE(@sql,' ','.'),3)+' '+ PARSENAME(REPLACE(@sql,' ','.'),4) |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-09-20 : 13:21:35
|
quote: Originally posted by rajarajan USE THIS declare @sql varchar(40)set @sql='Hi How are you?'SELECT PARSENAME(REPLACE(@sql,' ','.'),1)+' '+ PARSENAME(REPLACE(@sql,' ','.'),2)+' '+ PARSENAME(REPLACE(@sql,' ','.'),3)+' '+ PARSENAME(REPLACE(@sql,' ','.'),4)
this is same suggestion as one given by flambaster on 09/20/2011 : 10:10:30------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
rajarajan
Starting Member
48 Posts |
|
russell
Pyro-ma-ni-yak
5072 Posts |
Posted - 2011-09-20 : 14:34:05
|
Persistent huh? |
|
|
|
|
|
|
|