Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Substring setelah spasi

Ini adalah versi yang menggunakan SUBSTRING dan CHARINDEX untuk versi SQL SERVER sebelum SQL Server 2016 saat STRING_SPLIT diperkenalkan.

Salah satu dari berikut ini berfungsi:

SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)

SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )

Kita perlu mencari posisi spasi menggunakan CHARINDEX (yang mengembalikan angka yang menunjukkan di mana string (spasi) dimulai. Namun string yang ingin kita pilih dimulai setelah spasi, oleh karena itu kita harus menambahkan 1 (+1) ke posisi awal SUBSTRING kita sehingga posisi awal menjadi CHARINDEX(' ', @string) + 1.

Argumen ke-3 untuk SUBSTRING adalah panjang string yang akan dipilih, dalam kasus pertama saya hanya berasumsi bahwa string yang Anda tentukan sebagai varchar (20) tidak boleh lebih dari 20 karakter maka saya menggunakan 20. Catatan SUBSTRING tidak akan mencoba untuk pilih karakter yang melewati akhir string, sehingga aman untuk menentukan panjang yang lebih panjang dari jumlah karakter yang tersisa.

Contoh kedua saya mendapatkan panjang string untuk dipilih berdasarkan panjang total string (DATALENGTH) dikurangi jumlah karakter sebelum pilihan kami (CHARINDEX + 1)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghapus sejumlah besar data dari SQL Server 2008

  2. operasi tidak diizinkan ketika objek ditutup saat menjalankan kueri yang lebih maju

  3. Sintaks salah di dekat kata kunci 'GROUP' IN SQL

  4. Salin dalam model kedekatan

  5. Nama fungsi bawaan SQL Server