Saya punya meja dengan dua kolom, ID
dan Value
. Saya ingin mengubah bagian dari beberapa string di kolom kedua.
Contoh Tabel:
ID Value
---------------------------------
1 c:\temp\123\abc\111
2 c:\temp\123\abc\222
3 c:\temp\123\abc\333
4 c:\temp\123\abc\444
Sekarang 123\
dalam Value
string tidak diperlukan. Saya mencoba UPDATE
dan REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
Ketika saya menjalankan skrip SQL Server tidak melaporkan kesalahan, tetapi juga tidak memperbarui apa pun. Mengapa demikian?
sql
sql-server
string
sql-server-2008
replace
aston_zh
sumber
sumber
Jawaban:
Anda tidak memerlukan wildcard di
REPLACE
- itu hanya menemukan string yang Anda masukkan untuk argumen kedua, jadi berikut ini akan berfungsi:(Saya juga menambahkan
\
di ganti karena saya menganggap Anda tidak perlu itu juga)sumber
`? isn't that escaping the
'' dan membuat ini salah?Cobalah untuk menghapus
%
karakter seperti di bawah inisumber
Untuk membuat kueri berjalan lebih cepat dalam tabel besar di mana tidak setiap baris perlu diperbarui, Anda juga dapat memilih untuk hanya memperbarui baris yang akan diubah:
sumber
pertanyaan:
sumber
Anda memiliki satu tabel di mana Anda memiliki Kode tanggal yang kira-kira tujuh karakter
Sekarang Anda ingin mengganti semua
Dengan
Kueri SQL yang harus Anda jalankan adalah
sumber
Bagi siapa pun yang ingin mengganti skrip Anda.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
sumber
sumber
Anda harus menggunakan kueri pembaruan di bawah ini
Salah satu dari pertanyaan di atas harus berfungsi.
sumber
ganti untuk kata persia
bantuan: dbo.TblNews - nama tabel
keyWords - nama kecil
sumber