SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn
Sunting: Untuk menjelaskan, KANAN membutuhkan 2 argumen - string (atau kolom) untuk beroperasi, dan jumlah karakter untuk kembali (mulai dari sisi "kanan" dari string). LEN mengembalikan panjang data kolom, dan kami mengurangi empat sehingga fungsi KANAN kami meninggalkan 4 karakter paling kiri "di belakang".
Semoga ini masuk akal.
Sunting lagi - Saya baru saja membaca jawaban Andrew, dan dia mungkin telah melakukan interperperet dengan benar, dan saya mungkin salah. Jika ini masalahnya (dan Anda ingin memperbarui tabel daripada hanya mengembalikan hasil yang dipaksakan), Anda dapat melakukan ini:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)
Dia berada di jalur yang benar, tetapi solusinya akan menjaga 4 karakter di awal string, daripada membuang kata 4 karakter.
COL_LENGTH('MyTable', 'MyColumn')
bukanLEN(MyColumn)
karena dalam kasus saya saya ingin mengecualikan n karakter pertama tidak peduli ukuran konten aktual dalam kolom, tetapi ini bekerja dengan baik selain itu!Ini mengatakan, dimulai dengan
1
posisi karakter pertama , ganti4
karakter dengan apa-apa''
sumber
someColumn
sesuatu yang kompleks seperti subselect dari CTE atau somehting, ini tidak perlu dievaluasi dua kali.Mengapa menggunakan LEN sehingga Anda memiliki 2 fungsi string? Yang Anda butuhkan adalah karakter 5 di ...
sumber
Coba ini:
sumber
Berikut ini mock-up sederhana dari apa yang Anda coba lakukan :)
Jadi, gunakan pernyataan terakhir terhadap bidang yang ingin Anda pangkas :)
Fungsi SUBSTRING memangkas Code1, mulai dari karakter FIFTH, dan melanjutkan untuk panjang CODE1 kurang 4 (jumlah karakter dilewati di awal).
sumber
Hal Lengkap
sumber
Anda juga dapat melakukan ini dalam SQL ..
sintaksis
sumber
Coba ini. 100% berfungsi
sumber
Jawaban teratas tidak cocok ketika nilai mungkin memiliki panjang kurang dari 4.
Dalam T-SQL
Anda akan mendapatkan "Parameter panjang tidak valid diteruskan ke fungsi yang benar" karena tidak menerima negatif. Gunakan pernyataan KASUS:
Dalam Postgres
Nilai kurang dari 4 memberikan perilaku mengejutkan di bawah bukannya kesalahan, karena meneruskan nilai negatif ke KANAN akan memangkas karakter pertama dan bukan seluruh string. Lebih masuk akal untuk digunakan
RIGHT(MyColumn, -5)
sebagai gantinya.Contoh membandingkan apa yang Anda dapatkan ketika Anda menggunakan jawaban "panjang - 5" jawaban atas daripada "-5":
sumber
Ada fungsi trim bawaan yang sempurna untuk tujuan tersebut.
http://www.postgresql.org/docs/8.1/static/functions-string.html
sumber
Akan baik untuk dibagikan, Untuk penggunaan DB2:
INSERT(someColumn, 1, 4, '')
Stuff
tidak didukung dalam DB2sumber
Jika Anda harus menghapus beberapa karakter pertama yang didahului oleh karakter khusus seperti
#
, ini adalah yang baik:sumber