Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengekstrak subrentetan sebelum garis bawah dalam Oracle SQL?

Bagaimana untuk mengekstrak subrentetan sebelum garis bawah dalam Oracle SQL?

Linda Hamilton
Lepaskan: 2024-12-27 13:27:08
asal
832 orang telah melayarinya

How to Extract a Substring Before an Underscore in Oracle SQL?

Cara Mengekstrak Subrentetan Sehingga Aksara Tertentu dalam Oracle SQL

Mengenal pasti kedudukan aksara dalam rentetan boleh menjadi cabaran biasa dalam manipulasi data. Untuk menangani perkara ini, soalan itu meneroka senario di mana subrentetan sehingga aksara tertentu, dalam kes ini garis bawah ('_'), perlu diekstrak daripada lajur jadual.

Batasan Berasaskan Kedudukan SUBSTRING

Pendekatan awal menggunakan fungsi SUBSTRING terbukti tidak mencukupi kerana pergantungannya pada pemilihan berasaskan kedudukan. Memandangkan kedudukan garis bawah berbeza-beza dalam contoh yang diberikan, kaedah ini gagal untuk mendapatkan semula subrentetan yang diingini secara konsisten.

Fungsi RTIM: Penyelesaian yang Menjanjikan tetapi Tidak Lengkap

Pertimbangan fungsi RTRIM, bertujuan untuk alih keluar set aksara tertentu dari sebelah kanan, pada mulanya nampak menjanjikan. Walau bagaimanapun, ia gagal dalam mengasingkan aksara yang membawa kepada garis bawah melainkan fungsi RTRIM digunakan bersama dengan kaedah lain.

Gabungan SUBSTR, INSTR dan NVL

Penyelesaian terletak dalam menggabungkan fungsi SUBSTR dengan INSTR, yang mengenal pasti kedudukan watak, dan NVL, yang mengendalikan nilai nol. Kod berikut menunjukkan pendekatan ini:

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

Memahami Pelaksanaan

  • Fungsi SUBSTR mengekstrak subrentetan berdasarkan kedudukan permulaan (0) dan panjang yang ditentukan (INSTR('ABC_blah ', '_')-1).
  • Fungsi INSTR mencari kejadian pertama aksara garis bawah dan tolak 1 untuk mengambil kira pengindeksan aksara.
  • Fungsi NVL mengembalikan subrentetan jika ditemui (bukan nol); jika tidak, ia mengembalikan rentetan asal.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak subrentetan sebelum garis bawah dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan