Đây là phiên bản sử dụng SUBSTRING
và CHARINDEX
cho các phiên bản SQL SERVER trước SQL Server 2016 khi STRING_SPLIT
đã được giới thiệu.
Một trong các hoạt động sau:
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )
Chúng ta cần tìm vị trí của khoảng trắng bằng cách sử dụng CHARINDEX (trả về một số đại diện cho nơi bắt đầu của chuỗi (khoảng trắng). Tuy nhiên, chuỗi mà chúng ta muốn chọn bắt đầu sau khoảng trắng, do đó chúng ta phải thêm 1 (+1) vào vị trí bắt đầu của SUBSTRING của chúng tôi để vị trí bắt đầu trở thành CHARINDEX ('', @string) + 1.
Đối số thứ 3 cho SUBSTRING là độ dài của chuỗi để chọn, trong trường hợp đầu tiên, tôi chỉ giả sử rằng chuỗi bạn đã chỉ định là varchar (20) không thể dài hơn 20 ký tự, do đó tôi sử dụng 20. Lưu ý rằng SUBSTRING sẽ không cố gắng chọn các ký tự ở cuối chuỗi, vì vậy có thể an toàn khi chỉ định độ dài lớn hơn số ký tự còn lại.
Ví dụ thứ hai của tôi lấy độ dài của chuỗi để chọn dựa trên độ dài của tổng chuỗi (DATALENGTH) trừ đi số ký tự trước lựa chọn của chúng tôi (CHARINDEX + 1)