Vấn đề:
Bạn muốn xóa dấu ngắt dòng trong cột.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên address_book
với dữ liệu trong các cột city_name
và company_address
. Bạn muốn thay thế từng tab và ngắt dòng trong company_address
cột có ‘‘ (dấu cách) để làm cho nó hấp dẫn hơn về mặt trực quan.
city_name | company_address |
---|---|
Tokyo | 15 Oreo Street, Tokyo 9870-11 |
Warsaw | 18 Marszalkowska Ave, Warsaw 03-654 |
Accra | 123 Banana Junction, Circle-Accra, 00244 |
Berlin | Đại lộ Mango số 25, Asylum Down, DE-1234 |
Giải pháp:
Đây là truy vấn:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Đây là kết quả của truy vấn:
city_name | company_address |
---|---|
Tokyo | 15 Oreo Street, Tokyo 9870-11 |
Warsaw | 18 Marszalkowska Ave, Warsaw 03-654 |
Accra | 123 Banana Junction, Circle-Accra, 00244 |
Berlin | Đại lộ Mango số 25, Asylum Down, DE-1234 |
Thảo luận:
REPLACE()
hàm thường được sử dụng để thay thế tất cả các lần xuất hiện của một chuỗi được chỉ định trong một chuỗi bằng một chuỗi khác. Bạn có thể hỏi tại sao chúng tôi sử dụng CHR(10)
và CHR(13)
trong ví dụ trên. CHR()
hàm được sử dụng để chèn các ký tự điều khiển vào một chuỗi. CHR(10)
được sử dụng để chèn ngắt dòng, CHR(9)
dành cho các tab và CHR(13)
là để xuống dòng.
Trong ví dụ trên, chúng tôi muốn loại bỏ tất cả các lần xuất hiện của dấu ngắt dòng, của tab và của dấu xuống dòng, vì vậy chúng tôi đã sử dụng CHR(10)
, CHR(9)
và CHR(13)
. Chúng có thể được kết hợp bằng cách sử dụng dấu nối trong Oracle (||
) để loại bỏ tất cả các lần xuất hiện của chúng trong một cột. Cú pháp ví dụ là REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ )
.