Xóa chuỗi sau lần xuất hiện ký tự cụ thể thứ hai từ trái


10

Tôi có loại giá trị này trong cột bảng

154646@8@486
45465@6464@654

Vân vân.

Làm thế nào tôi có thể loại bỏ mọi thứ sau ký tự thứ hai @? Tôi cần hiển thị

154646@8
45465@6464

Tôi chỉ có thể làm điều đó cho tất cả @ nhưng không phải cho lần thứ hai

SELECT REPLACE(LEFT('45@Tra@lala', CHARINDEX('@','45@Tra@lala')-1),'_',' ')

trả về 45 nhưng không phải 45 @ Trà

Cảm ơn bạn :-)


Có thể có bất kỳ số lượng các @dấu hiệu trong chuỗi?
Aaron Bertrand

Câu trả lời:


16

Bạn có thể sử dụng tham số thứ ba của charindex()được sử dụng để xác định nơi trong chuỗi tìm kiếm sẽ bắt đầu.

declare @S varchar(20) = '45465@6464@654';
select left(@S, charindex('@', @S, charindex('@', @S)+1)-1);

Kết quả

45465@6464
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.