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

Ekstrak karakter di sebelah kanan nilai yang dibatasi dalam pernyataan SELECT

Pertanyaan ini memiliki jawaban khusus basis data.

Jika menggunakan SQL Server:

SELECT column1
     , RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
     , column3 
FROM myTable

Anda dapat menambahkan CASE pernyataan atau gunakan NULLIF() jika tanda hubung tidak selalu ada:

SELECT column1
     , CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) 
           END as extracted
     , column3 
FROM myTable

Atau:

SELECT column1
     , RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
     , column3 
FROM myTable

Jika menggunakan MySQL cukup ubah CHARINDEX() ke LOCATE() . Saya percaya Oracle itu INSTR() dan dua parameter pertama dialihkan, pertama adalah string yang Anda cari, lalu string yang Anda cari.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki Msg 512 "Subquery mengembalikan lebih dari 1 nilai" di SQL Server

  2. Sorotan Cloud Basic:Alat Pemantau Kinerja Basis Data Gratis Terbaik

  3. Periksa perubahan pada tabel SQL Server?

  4. Saya mencoba membuat prosedur tersimpan untuk membuat login dan pengguna database?

  5. Kesalahan SQL Server:Data string atau biner akan terpotong