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

Tìm chỉ mục của lần xuất hiện cuối cùng của một chuỗi con bằng T-SQL

Cách thẳng thắn? Không, nhưng tôi đã sử dụng ngược lại. Theo nghĩa đen.

Trong các quy trình trước đây, để tìm lần xuất hiện cuối cùng của một chuỗi nhất định, tôi đã sử dụng hàm REVERSE (), theo sau CHARINDEX, tiếp theo là REVERSE để khôi phục lại thứ tự ban đầu. Ví dụ:

SELECT
   mf.name
  ,mf.physical_name
  ,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
 from sys.master_files mf

cho biết cách trích xuất tên tệp cơ sở dữ liệu thực tế từ "tên vật lý" của chúng, bất kể được lồng sâu trong các thư mục con như thế nào. Điều này chỉ tìm kiếm một ký tự (dấu gạch chéo ngược), nhưng bạn có thể xây dựng dựa trên điều này cho các chuỗi tìm kiếm dài hơn.

Nhược điểm duy nhất là, tôi không biết điều này sẽ hoạt động tốt như thế nào trên các kiểu dữ liệu TEXT. Tôi đã sử dụng SQL 2005 được vài năm rồi và không còn thích làm việc với TEXT nữa - nhưng tôi nhớ lại rằng bạn có thể sử dụng LEFT và RIGHT trên nó?

Philip



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi từ DateTime sang INT

  2. Trả về tất cả các khóa ngoại tham chiếu đến một bảng đã cho trong SQL Server

  3. 6 cách chuyển đổi chuỗi thành giá trị ngày / giờ trong SQL Server

  4. Sử dụng PIVOT trong SQL Server 2008

  5. Cách tìm định dạng ngày được sử dụng trong phiên hiện tại trong SQL Server (T-SQL)