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

Làm cách nào để tách một chuỗi để tôi có thể truy cập mục x?

Tôi không tin rằng SQL Server có chức năng phân tách tích hợp, vì vậy ngoài UDF, câu trả lời khác duy nhất mà tôi biết là chiếm quyền điều khiển chức năng PARSENAME:

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 

PARSENAME nhận một chuỗi và chia nó trên ký tự dấu chấm. Nó nhận một số làm đối số thứ hai và số đó chỉ định phân đoạn nào của chuỗi sẽ trả về (hoạt động từ sau ra trước).

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello

Vấn đề rõ ràng là khi chuỗi đã chứa một dấu chấm. Tôi vẫn nghĩ sử dụng UDF là cách tốt nhất ... có đề xuất nào khác không?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục hoặc hàm được lưu trữ yêu cầu tham số không được cung cấp

  2. Nhóm máy chủ SQL theo số ngày tháng mỗi giờ?

  3. Tham số Sniffing (hoặc Spoofing) trong SQL Server

  4. Kiến trúc SQL Server AlwaysOn (Nhóm khả dụng) và Cài đặt từng bước -2

  5. Kiểu dữ liệu thích hợp nhất để lưu trữ địa chỉ IP trong máy chủ SQL là gì?