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.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 How to reverse the string in sql server 2005

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 Hi

Regards,
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 > 0
ORDER BY number DESC

SELECT @newString as newString
Go to Top of Page

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]
Go to Top of Page

rajarajan
Starting Member

48 Posts

Posted - 2011-09-20 : 13:10:48
YOU CAN USE THIS FUNCTION


select REVERSE('HI HOW ARE U ')
Go to Top of Page

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 IH
which is not OP wants
OP was asking to reverse the sequences of words in string without reversing words themselves

------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/

Go to Top of Page

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)
Go to Top of Page

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 MVP
http://visakhm.blogspot.com/

Go to Top of Page

rajarajan
Starting Member

48 Posts

Posted - 2011-09-20 : 13:32:31
SEE THIS LINK
http://www.sql-server-helper.com/tips/split-name.aspx
Go to Top of Page

russell
Pyro-ma-ni-yak

5072 Posts

Posted - 2011-09-20 : 14:34:05
Persistent huh?
Go to Top of Page
   

- Advertisement -