2013-09-02 73 views
12

Tôi có một bảng trong cơ sở dữ liệu SQL Server 2008 được gọi là Meter. Bảng này có một cột có tên là Name.Cập nhật chuỗi con của một cột

Mỗi mục nhập trong cột Name có tiền tố ZAA\ sau. Tôi muốn thay đổi tiền tố này thành ZAA_ mà không ảnh hưởng đến phần còn lại của văn bản trong cột.

Trả lời

15
UPDATE Meter 
SET Name = 'ZAA_' + SUBSTRING(Name, 4, LEN(Name)) 
WHERE SUBSTRING(Name, 1, 4) = 'ZAA\' 

Edit:

Hoặc như bang @Damien_The_Unbliever, sử dụng một chỉ số:

UPDATE Meter 
SET Name = 'ZAA_' + SUBSTRING(Name, 4, LEN(Name)) 
WHERE Name LIKE 'ZAA\%' 

EDIT

Từ nhận xét của bạn, hãy thử bản Tuyên Bố này để sửa chữa thêm \ :

UPDATE Meter 
SET Name = 'ZAA_' + SUBSTRING(Name, 5, LEN(Name)) 
WHERE Name LIKE 'ZAA_\%' 
+1

'Tên LIKE 'zaa \%' 'ít nhất sẽ cho phép một chỉ số (nếu có) để tìm hàng để cập nhật. –

+0

@Damien_The_Unbeliever - đã thêm. Cảm ơn. –

+0

'Cú pháp không chính xác gần \' – Romesh

1

MYSQL:

UPDATE Meter 
SET Name = CONCAT('ZAA' ,'_', SUBSTRING(Name, 4, LENGTH(Name))) 
WHERE Name LIKE 'ZAA\%' 
Các vấn đề liên quan