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

SQL Server 2005:Chia chuỗi thành mảng và lấy mảng (x)?

Tôi giả định rằng ở đây luôn có chính xác 4 phần.

Nếu vậy, bạn có thể thay thế / với . và sử dụng ParseName hàm số. Vấn đề duy nhất từ ​​ví dụ của bạn là nó được tính từ cuối, vì vậy bạn cần phải cẩn thận về phần mình muốn:

DECLARE @test VARCHAR(max);
SET @test = 'Peter/Parker/Spiderman/Marvel';
SET @test = Replace(@test, '/', '.');

SELECT Parsename(@test, 4),--returns Peter
       Parsename(@test, 3),--returns Parker
       Parsename(@test, 2),--returns Spiderman
       Parsename(@test, 1) --returns Marvel

Nếu có một số bộ phận thay đổi, bạn sẽ cần tìm một hàm tách chuỗi để thực hiện việc này cho mình, không có một hàm nào tốt được tích hợp sẵn. Bạn có thể tìm thấy nhiều tùy chọn khi tìm kiếm SO: https://stackoverflow.com/search?q=[sql + server] + string + split

Lời cảnh báo - nếu bạn cố gắng sử dụng một số với PARSENAME khác với 1-4, kết quả sẽ luôn là NULL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc cơ sở dữ liệu là gì?

  2. Cách tìm đối chiếu trong SQL Server (T-SQL)

  3. SQL Server (localdb) \ v11.0 giải thích

  4. Làm cách nào để thay thế tất cả các trường khóa trong một chuỗi bằng các giá trị thay thế từ một bảng trong T-SQL?

  5. Tạo bảng 6 x 6 với tính năng tự động tràn từ tuyến trên