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

SQL Server 2005 Sử dụng CHARINDEX () để tách một chuỗi

Tôi sẽ không nói chính xác nó là dễ hay rõ ràng, nhưng chỉ với hai dấu gạch nối, bạn có thể đảo ngược chuỗi và nó không quá khó:

with t as (select 'LD-23DSP-1430' as val)
select t.*,
       LEFT(val, charindex('-', val) - 1),
   SUBSTRING(val, charindex('-', val)+1, len(val) - CHARINDEX('-', reverse(val)) - charindex('-', val)),
       REVERSE(LEFT(reverse(val), charindex('-', reverse(val)) - 1))
from t;

Ngoài ra, bạn có thể muốn sử dụng split() thay vào đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Tính toán với các ký tự số

  2. Xử lý các ký tự unicode không được hiển thị chính xác trong truy vấn SQL

  3. SqlParameter không cho phép Tên bảng - các tùy chọn khác mà không có cuộc tấn công tiêm sql?

  4. Cách tìm tất cả vi phạm ràng buộc trong cơ sở dữ liệu máy chủ SQL

  5. Chuyển đổi biểu thức CASE trong SQL thành cột dẫn xuất trong SSIS