در صورتي كه براي يك رشته ميخوايد ، ميتونيد بصورت زير عمل كيد
Declare @Str varchar(Max)
Set @Str ='Reza Yarahmadi'
WHILE(CharIndex(' ', @Str)<> 0)
Set @Str = Replace(@Str, ' ', ' ')
Select @Str
براي اطلاعات يك جدول هم ميتونيد از روش زير كمك بگيريد(اين روش از 2005 به بالا جواب ميده). در كل روش استانداردي براي اين كار (فكرميكنم!) وجود نداره و بايد با بازي كردن با دستورات اين كار رو انجام بديد.
Declare @Str1 varchar(Max),@Str2 varchar(Max),@Str3 varchar(Max)
Set @Str1 ='Reza Yarahmadi'
Set @Str2 ='Reza Yarahmadi'
Set @Str3 ='Reza Yarahmadi'
;With TempTable as(
Select @Str1 as Name
UNION ALL
Select @Str2 as Name
UNION ALL
Select @Str3 as Name
), TempTable2 as(
Select
Row_Number() Over(Order by Name) as Id,
Name
From
TempTable
), res(Id,RowN,Name) as(
Select
Id,
Row_Number() Over(Order by Id) as RowN,
Name
From
TempTable2
UNION All
Select
Id,
(RowN + 1) as RowN,
Replace(Name, ' ', ' ') as Name
From
res
Where
CharIndex(' ', Name) <> 0
),Result as(
Select
Id,
Max(RowN) as RowN
From
res
Group By
Id
)
Select
r.Name
From
res r Inner Join Result re
ON
r.Id = re.Id
AND
r.RowN = re.RowN