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

Cara Menggunakan REPLACE di SQL

Saat meminta data dengan SQL, kebutuhan untuk memanipulasi hasil berbasis string sangat umum. Ada banyak pilihan di seluruh sistem database relasional utama untuk tugas ini. Dalam artikel ini, kita akan membahas kasus penggunaan dan fungsionalitas fungsi REPLACE SQL.

Memulai REPLACE

Fungsi FIND dan REPLACE dikenal oleh semua orang karena dilengkapi dengan editor teks apa pun. ANSI SQL menawarkan fungsionalitas REPLACE dalam bentuk fungsi sistem bawaan. Pada artikel ini, saya akan menggunakan SQL Server sebagai RDMS pilihan saya.

BGANTI Parameter Fungsi

REPLACE (string_expression, string_pattern, string_replacement)

Ekspresi_string adalah string yang akan diubah, bisa berupa string tunggal atau kolom dari query SQL yang masuk.

String_pattern adalah pola pencarian yang diterapkan pada ekspresi string yang akan diganti.

Penggantian_string adalah nilai pengganti yang diterapkan ke string saat string _pattern cocok dengan string_expression .

Mari kita lihat beberapa contoh untuk lebih memahami fungsi REPLACE.

Membuat Data Sampel

Untuk contoh ini, saya akan membuat tabel sementara untuk digunakan dengan fungsi REPLACE. Nama kolom akan cocok dengan nilai parameter fungsi.


IF OBJECT_ID(N'tempdb..#TEMP_REPLACE_DEMO') IS NOT NULL
DROP TABLE #TEMP_REPLACE_DEMO


CREATE TABLE #TEMP_REPLACE_DEMO
(
ID INT IDENTITY(1,1),
STRING_EXPRESSION VARCHAR(2000),
STRING_PATTERN VARCHAR(200),
STRING_REPLACEMENT VARCHAR(200)
)

--REPLACE THE VALUE CAR WITH FOX
INSERT INTO #TEMP_REPLACE_DEMO
VALUES('The red car is the fastest car in the race.','car','fox')

--REPLACE THE VALUE 4 WITH 8
INSERT INTO #TEMP_REPLACE_DEMO
VALUES('There are 4 model ford cars in the parking lot.','4','8')

--REMOVE THE BLANK SPACE CHARACTER
INSERT INTO #TEMP_REPLACE_DEMO
VALUES('    This sentence    has     irregular spacing              .       ',' ','')

R Sederhana dan DinamisEPLACE Contoh

Sekarang setelah tabel dimuat dengan beberapa contoh data, mari kita periksa bagaimana GANTI fungsi dapat diterapkan pada data pada tingkat dasar dan kemudian dalam kapasitas yang lebih dinamis.

Pada contoh pertama, parameter dikodekan sebagai nilai string ke fungsi.

--REPLACE THE VALUE CAR WITH FOX
SELECT REPLACE('The red car is the fastest car in the race.','car','fox') AS RESULT_FOR_SENTENCE

Nilai juga dapat dibaca dari tabel secara dinamis. Dalam hal ini, ekspresi, pola, dan nilai pengganti semuanya dibaca dari tabel secara langsung, bukan dikodekan secara keras.

--DYNAMIC EXAMPLE FOR ALL COLUMNS IN THE TABLE.
SELECT ID,REPLACE(STRING_EXPRESSION,STRING_PATTERN,STRING_REPLACEMENT) AS RESULT_FOR_TABLE
FROM #TEMP_REPLACE_DEMO

Hasil untuk ID 1 sama dengan contoh di atas, satu-satunya perbedaan adalah nilai dibaca dari kolom individual.

Penggantian Bersarang

Fungsi REPLACE juga dapat digunakan dalam kapasitas bersarang. Artinya, hasil fungsi REPLACE dalam dapat menjadi parameter STRING_EXPRESSION dari fungsi penggantian luar.

Berikut adalah beberapa contoh pola ini pada data sampel:

--REPLACE THE VALUE CAR WITH FOX | REPLACE THE VALUE "fastest" WITH "slowest"
SELECT REPLACE(REPLACE('The red car is the fastest car in the race.','car','fox'),'fastest','slowest')


--REMOVE THE BLANK SPACE CHARACTER | REPLACE THE VALUE "irregular" with "no"
SELECT REPLACE(REPLACE('    This sentence    has     irregular spacing              .       ',' ',''),'irregular','NO')

Kolasi dan REPLACE dalam SQL

Pengumpulan merupakan faktor penting untuk dipertimbangkan saat bekerja dengan data string dan fungsi REPLACE. Pengumpulan dapat diatur pada beberapa tingkat database seperti tingkat akun atau instans, tingkat database, skema, sesi, atau tabel. Setelan ini dapat memengaruhi cara kerja fungsi REPLACE.

Dalam contoh ini, Anda mungkin tidak mengharapkan huruf besar A diganti dengan huruf kecil b. Tapi itu tergantung pada pemeriksaan yang diwarisi ke koneksi saat ini ke database.

--REPLACEMENT WITHOUT EXPLICIT COLLATION.
SELECT REPLACE('A','a','b') AS DEFAULT_COLLATION

Hasil ini cocok dengan a hingga A karena collation.

Pengaturan susunan di SQL Server dapat diperiksa di tingkat server:

--VIEW CURRENT COLLATION
SELECT CONVERT (varchar(256), SERVERPROPERTY('collation')); 
 

Kuncinya di sini adalah CI yang merupakan singkatan dari case insensitive. Untuk menerapkan fungsi REPLACE dalam kapasitas peka huruf besar/kecil, parameter string_expression dapat disusun secara eksplisit.

-- USE COLLATE TO MATCH CHARACTER CASING FOR REPLACE
SELECT REPLACE('A' COLLATE Latin1_General_CS_AS ,'a','b') as Explicit_Collation;

Dalam contoh ini, karena parameter string_expression disusun sebagai peka huruf besar/kecil, fungsi REPLACE tidak menggantikan nilai aslinya.

Ringkasan

Fungsi REPLACE adalah alat yang hebat untuk manipulasi string dasar dan lanjutan di beberapa sistem database relasional. Artikel ini membahas aplikasi dasar fungsi REPLACE, cara menggunakannya dalam kapasitas dinamis. Kami juga membahas penggunaan REPLACE sebagai fungsi bersarang, dan bagaimana susunan dapat memengaruhi hasil yang dikembalikan olehnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dampak kinerja dari berbagai teknik penanganan kesalahan

  2. Pengemudi ODBC PayPal

  3. Menggunakan Pola Alur Kerja untuk Mengelola Status Entitas Apa Pun

  4. Memulihkan Contoh DW Database AdventureWorksDW2019

  5. Menyesuaikan Pasokan Dengan Permintaan — Solusi, Bagian 3