Ποιος είναι ο καλύτερος τρόπος για να αφαιρέσετε όλα τα κενά από μια συμβολοσειρά στον SQL Server 2008;
Το LTRIM(RTRIM(' a b '))
θα αφαιρούσε όλα τα κενά δεξιά και αριστερά της συμβολοσειράς, αλλά πρέπει επίσης να αφαιρέσω το κενό στη μέση.
Απλά αντικαταστήστε το,
SELECT REPLACE(fld_or_variable, ' ', '')
Επεξεργασία:
Απλά για να διευκρινίσουμε, είναι μια καθολική αντικατάσταση, δεν χρειάζεται να trim()
ή να ανησυχείτε για πολλαπλά κενά είτε για char
είτε για varchar
:
create table #t (
c char(8),
v varchar(8))
insert #t (c, v) values
('a a' , 'a a' ),
('a a ' , 'a a ' ),
(' a a' , ' a a' ),
(' a a ', ' a a ')
select
'"' + c + '"' [IN], '"' + replace(c, ' ', '') + '"' [OUT]
from #t
union all select
'"' + v + '"', '"' + replace(v, ' ', '') + '"'
from #t
Αποτέλεσμα
IN OUT
===================
"a a " "aa"
"a a " "aa"
" a a " "aa"
" a a " "aa"
"a a" "aa"
"a a " "aa"
" a a" "aa"
" a a " "aa"