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

Nhận chuỗi con trong SQL Server

Bạn có thể sử dụng reverse cùng với substringcharindex để có được những gì bạn đang tìm kiếm:

select
    reverse(substring(reverse(filename), 1, 
        charindex('.', reverse(filename))-1)) as FileExt
from
    mytable

Điều này ổn, ngay cả khi bạn có nhiều . trong tệp của bạn (ví dụ:hello.world.exe sẽ trả về exe ).

Vì vậy, tôi đã chơi xung quanh một chút với cách này, và đây là một cách khác (chỉ có một lệnh gọi đến reverse ):

select 
    SUBSTRING(filename, 
        LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
    mytable

Phương pháp này tính toán 10.000.000 hàng trong 25 giây so với 29 giây cho phương pháp cũ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Danh sách phân cấp các loại sự kiện kích hoạt trong SQL Server 2019

  2. Sự kiện chờ SQL Server -2

  3. Tìm hiểu xem một đối tượng có phải là một bảng do người dùng xác định trong SQL Server với OBJECTPROPERTY ()

  4. Truy vấn cực kỳ chậm trong mã nhưng nhanh trong SSMS

  5. Kết nối với máy chủ SQL với xác thực Windows từ máy Linux thông qua JDBC