Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Mengekstrak Substring Dari String di T-SQL

Masalah:

Anda memiliki kolom string, dan Anda ingin mendapatkan substring darinya.

Contoh 1:

Di emails tabel, ada kolom email. Anda ingin menampilkan tujuh karakter pertama dari setiap email.

Tabelnya terlihat seperti ini:

email
[email protected]
[email protected]
[email protected]
[email protected]

Solusi 1:

SELECT
  email,
  SUBSTRING(email, 1, 7) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] jake99@
[email protected] tamarab
[email protected] notine@
[email protected] jessica

Diskusi:

Gunakan SUBSTRING() fungsi. Argumen pertama adalah string atau nama kolom. Argumen kedua adalah indeks karakter di mana substring harus dimulai. Argumen ketiga adalah panjang substring.

Hati-Hati! Tidak seperti di beberapa bahasa pemrograman lain, indeks dimulai dari 1 , bukan 0. Ini berarti karakter pertama memiliki indeks 1, karakter kedua memiliki indeks 2, dst.

SUBSTRING(email, 1, 7) akan mengembalikan substring dari nilai dalam email kolom yang dimulai dari karakter pertama dan dilanjutkan dengan tujuh karakter.

Contoh 2:

Anda ingin menampilkan substring antara indeks 2 dan 6 (inklusif).

Solusi 2:

SELECT
  email,
  SUBSTRING(email, 2, 5) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] ake99
[email protected] amara
[email protected] otine
[email protected] penting

Diskusi:

Anda menggunakan SUBSTRING() berfungsi seperti pada contoh sebelumnya. Kali ini, argumen kedua dari fungsi tersebut adalah 2 , karena kita ingin memulai dari indeks 2. Panjang substring adalah 5 (end_index - start_index + 1 ).

Contoh 3:

Anda ingin menampilkan substring yang dimulai pada @ tanda tangani dan akhiri di akhir string, tetapi Anda tidak tahu indeks atau panjangnya yang tepat.

Solusi 3:

SELECT
  email,
  SUBSTRING(email, CHARINDEX('@', email), LEN(email) - CHARINDEX('@', email) + 1) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] @gmail.com
[email protected] @zoho.com
[email protected] @yahoo.fr
[email protected] @onet.pl

Diskusi:

Anda menggunakan SUBSTRING() berfungsi seperti pada contoh sebelumnya. Kali ini, Anda sedang mencari karakter tertentu yang posisinya dapat bervariasi dari baris ke baris. Untuk menemukan indeks karakter tertentu, Anda dapat menggunakan CHARINDEX(character, column) fungsi di mana karakter adalah karakter spesifik tempat Anda ingin memulai substring (di sini, @ ). Kolom argumen adalah kolom dari mana Anda ingin mengambil substring; itu juga bisa berupa string literal.

Argumen ketiga dari SUBSTRING() fungsi adalah panjang substring. Anda dapat menghitungnya menggunakan CHARINDEX() dan LEN() fungsi. Caranya dengan mengurangkan indeks dari panjang kolom kemudian menambahkan 1:

LEN(email) - CHARINDEX('@', email) + 1

Anda mungkin juga ingin mengambil substring yang tidak berakhir di akhir string tetapi pada beberapa karakter tertentu, misalnya, sebelum '. '. Berikut cara melakukannya:

SELECT
  email,
  SUBSTRING(email, CHARINDEX('@', email), CHARINDEX('.', email) - CHARINDEX('@', email)) AS substring
FROM emails;

Hasil dari query ini adalah:

email substring
[email protected] @gmail
[email protected] @zoho
[email protected] @yahoo
[email protected] @onet

Bagian CHARINDEX('.', email) - CHARINDEX('@', email) cukup hitung panjang substring.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tugas Postgres Umum di CentOS 7

  2. Pertimbangan Sekitar Urutan Kolom dalam Indeks dan Sortir

  3. Cara Memeriksa apakah UDF T-SQL Terikat Skema (Bahkan Saat Dienkripsi)

  4. Labu dengan Contoh – Menyiapkan Postgres, SQLAlchemy, dan Alembic

  5. Rethink Flask – Daftar Todo Sederhana Didukung oleh Flask dan RethinkDB