Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuỗi con sau dấu cách

Đây là phiên bản sử dụng SUBSTRINGCHARINDEX 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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thay đổi một cột từ Null thành Not Null trong SQL Server

  2. Thay đổi đầu ra của Getdate

  3. Bộ lọc tham số Nhiều giá trị SSRS dựa trên tập dữ liệu

  4. Chúng ta có thể viết câu lệnh tình huống mà không cần câu lệnh khác không

  5. Vấn đề truy vấn Sql Server2005