Rumah >pangkalan data >tutorial mysql >Bagaimana Mengekstrak Substring dalam Oracle SQL Sebelum Watak Tertentu?

Bagaimana Mengekstrak Substring dalam Oracle SQL Sebelum Watak Tertentu?

Susan Sarandon
Susan Sarandonasal
2025-01-03 15:38:38998semak imbas

How to Extract Substrings in Oracle SQL Before a Specific Character?

Mengambil Subrentetan Sehingga Aksara Tertentu dalam Oracle SQL

Memilih subrentetan daripada lajur jadual tetapi mengehadkan julat kepada aksara tertentu boleh mencabar. Pertimbangkan senario di mana anda mempunyai lajur dengan nilai yang diformatkan sebagai "ABC_blahblahblah." Matlamatnya adalah untuk mengekstrak bahagian sahaja sebelum garis bawah.

Fungsi SUBSTRING, yang bergantung pada pemilihan berdasarkan kedudukan, tidak akan mencukupi kerana kedudukan garis bawah berbeza-beza. RTRIM, bertujuan untuk mengalih keluar aksara tertentu dari hujung rentetan, tidak sejajar dengan keperluan dengan tepat.

Untuk menangani cabaran ini, gabungan fungsi Oracle SQL boleh digunakan. Dengan memanfaatkan SUBSTR, INSTR dan NVL, kami boleh mencapai hasil yang diingini:

SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
  FROM DUAL

Penjelasan:

  • NVL memastikan hasil yang sah walaupun subrentetan tidak mengandungi garis bawah.
  • SUBSTR mengekstrak sebahagian daripada rentetan, bermula dari kedudukan 0 (permulaan) dan menamatkan satu aksara sebelum garis bawah. INSTR mencari kedudukan garis bawah.
  • Hasilnya diberikan kepada lajur output.

Penggunaan:

SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
  FROM YOUR_TABLE t

Dalam Oracle10g , REGEXP_SUBSTR boleh digunakan untuk melakukan padanan ungkapan biasa, menyediakan pendekatan alternatif untuk mengekstrak subrentetan yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana Mengekstrak Substring dalam Oracle SQL Sebelum Watak Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn