Apa cara terbaik untuk menghapus semua spasi dari string di SQL Server 2008?
LTRIM(RTRIM(' a b '))
akan menghapus semua spasi di kanan dan kiri string, tetapi saya juga harus menghapus spasi di tengah.
sql
sql-server
string
whitespace
trim
Ananth
sumber
sumber
Jawaban:
Cukup ganti saja;
Sunting: Hanya untuk memperjelas; itu adalah pengganti global, tidak perlu
trim()
atau khawatir tentang beberapa ruang untuk salah satuchar
atauvarchar
:Hasil
sumber
Saya akan menggunakan REPLACE
MENGGANTIKAN
sumber
Jika ini merupakan pembaruan di atas meja, Anda hanya perlu menjalankan pembaruan ini beberapa kali hingga memengaruhi 0 baris.
sumber
REPLACE()
fungsi :sumber
Referensi diambil dari blog ini:
Pertama, Buat tabel sampel dan data:
Script ke SELECT string tanpa Spaces Ekstra:
Hasil:
sumber
100% berfungsi
Anda bisa menggunakan
"column_name"
ataucolumn_name
Terima kasih
Subroto
sumber
select replace(replace(replace(varcharColumn,char(13),''),char(10),''),' ','')
untuk menghapus semua baris dan spasi baru darivarchar
kolom. Jika saya menggunakan '\ n' dan '\ r' alih-alih char (13) dan char (10) tidak berfungsi.t-sql ganti http://msdn.microsoft.com/en-us/library/ms186862.aspx
ganti (val, '', '')
sumber
Jika ada beberapa spasi putih dalam sebuah string, maka ganti mungkin tidak berfungsi dengan benar. Untuk itu, fungsi berikut harus digunakan.
Contoh:
Keluaran:
sumber
Ini melakukan trik menghilangkan spasi pada string:
sumber
Untuk berjaga-jaga jika Anda perlu TRIM spasi di semua kolom, Anda dapat menggunakan skrip ini untuk melakukannya secara dinamis:
sumber
jika Anda ingin menghapus spasi, -, dan teks lain dari string kemudian gunakan berikut ini:
misalkan Anda memiliki nomor ponsel di Tabel Anda seperti '718-378-4957' atau '7183784957' dan Anda ingin mengganti dan mendapatkan nomor ponsel kemudian gunakan Teks berikut.
Hasil: - 7183784957
sumber
Hanya tip, jika Anda mengalami masalah dengan fungsi ganti, Anda mungkin memiliki set data tipe ke nchar (dalam hal ini itu adalah panjang tetap dan tidak akan berfungsi).
sumber
Untuk menyelesaikan semua jawaban di atas, ada posting tambahan di StackOverflow tentang cara menangani SEMUA karakter spasi putih (lihat https://en.wikipedia.org/wiki/Whitespace_character untuk daftar lengkap karakter ini):
sumber
ganti (ganti (column_Name, CHAR (13), ''), CHAR (10), '')
sumber
ini berguna bagi saya:
.
sumber
Saya memiliki masalah ini hari ini dan ganti / trim lakukan triknya .. lihat di bawah.
sebelum dan sesudah :
sumber
LTRIM
&RTRIM
?Untuk menghapus spasi di string ke kiri dan ke kanan. Untuk menghapus ruang di tengah digunakan
Replace
.Anda dapat menggunakan
RTRIM()
untuk menghapus spasi dari kanan danLTRIM()
untuk menghapus spasi dari kiri maka spasi kiri dan kanan dihapus sebagai berikut:sumber
Sintaks untuk mengganti karakter tertentu:
Misalnya dalam string "HelloReplaceThingsGoing" Ganti kata digantikan oleh Bagaimana
sumber
Versi fungsional (udf) yang menghilangkan spasi, cr, lf, tab atau dapat dikonfigurasi.
Hasil: '234asdfwefwef3x'
sumber
Untuk beberapa alasan, penggantian hanya berfungsi dengan satu string setiap kali. Saya memiliki string seperti ini " Tes MSP " dan saya ingin hanya menyisakan satu ruang.
Saya menggunakan pendekatan yang @Farhan lakukan, tetapi dengan beberapa modifikasi:
Lalu saya menjalankan pembaruan saya seperti ini
Lalu saya mendapat hasil ini: Tes MSP
Posting di sini jika seandainya seseorang membutuhkannya seperti saya.
Berjalan di: Microsoft SQL Server 2016 (SP2)
sumber
Periksa dan Coba skrip di bawah ini (Unit Diuji) -
sumber
Tampaknya semua orang terus mengacu pada fungsi REPLACE tunggal. Atau bahkan banyak panggilan fungsi REPLACE. Tetapi ketika Anda memiliki output dinamis dengan jumlah ruang yang tidak diketahui, itu tidak akan berfungsi. Siapa pun yang berurusan dengan masalah ini secara teratur tahu bahwa REPLACE hanya akan menghapus satu ruang, BUKAN SEMUA, sebagaimana mestinya. Dan LTRIM dan RTRIM tampaknya memiliki masalah yang sama. Serahkan pada Microsoft. Berikut adalah contoh output yang menggunakan WHILE Loop untuk menghapus nilai ALL CHAR (32) (spasi).
Inilah output dari kode di atas:
Sekarang untuk mengambil langkah lebih lanjut dan menggunakannya dalam pernyataan UPDATE atau SELECT, ubah ke udf.
Kemudian gunakan fungsi dalam pernyataan SELECT atau INSERT:
sumber