I had the need to today to alphabetize a phrase using SQL. For example, I needed “red cowboy pretty hat” to read “cowboy hat pretty red”. Here is the code I wrote to do so:
declare @input varchar(100)
set @input = "red cowboy pretty hat"
--declarations
DECLARE @i int
,@len int
,@word varchar(100)
,@char varchar(1)
,@newphrase varchar(1000)
--Variable/Constant initializations
SET @i = 1
SET @len = LEN(@input)
SET @word = ""
SET @newphrase = ""
create table #temp(word varchar(100))
WHILE @i < @len
begin
SET @char = SUBSTRING(@input, @i, 1)
IF @char = " "
begin
--add word to temp table
if len(@word) > 0
insert into #temp(word)
select @word
SET @word = ""
end
else
SET @word = @word + @char
SET @i = @i + 1
end
select @newphrase = @newphrase + " " + word
from #temp
order by word
print @newphrase
drop table #temp