Xử lý chuỗi và thao tác văn bản với SQL Select

Trong thực tế, việc thu thập dữ liệu từ các bảng có thể không như mong muốn. Các phần của một chuỗi có thể cần phải được: xóa, chia thành nhiều phần hoặc cần thay thế một số từ bằng các từ khác.

May mắn là torng ngôn ngữ MapBasic có đi kèm với một số chức năng được sử dụng để tìm kiếm các chuỗi và trích xuất các phần từ chuỗi.

Các hàm MapBasic này cũng được sử dụng để truy vấn bảng và cập nhật bảng.

Dưới đây là danh sách một số hàm về chuỗi MapBasic:

  • Tìm một chuỗi con: InStr()
  • Trích xuất một phần của chuỗi: Left$(), Right$(), Mid$()
  • Chữ hoa/chữ thường: UCase$(), LCase$(), Proper$
  • Cắt khoảng trống từ một chuỗi: LTrim$(), RTrim$()
  • Xác định độ dài chuỗi: Len()
  • Lặp lại chuỗi: Space$(), String$()

Câu lệnh truy vấn. Hãy xem xét một số câu lệnh truy vấn thực tế để xem cách sử dụng các hàm này trong câu lệnh SQL.

Cần phải tìm các record thỏa mãn một điều kiện nhất định. Có thể các địa chỉ của dữ liệu đã được nhập bằng chữ viết tắt và cần thay đổi chúng thành các từ đầy đủ, ví dụ: thay đổi “12 High St” thành “12 High Street”, “234 Main Rd” thành “234 Main Road”.

Đầu tiên xác định vị trí các bản ghi đang sử dụng viết tắt. Sử dụng một điều kiện như thế này:

Right$(RTrim$(Address), 2) = “Rd”

Xử lý chuỗi và thao tác văn bản với SQL Select

Hàm Right$() trích xuất một số ký tự từ bên phải văn bản. Trong ví dụ ở đây, trích xuất hai ký tự bên phải.

Nếu không chắc chắn về mức độ sạch của dữ liệu, hãy sử dụng RTrim$() để xóa các khoảng trống khỏi địa chỉ:

Right$(RTrim$(Address), 2) = “Rd”

Xử lý chuỗi và thao tác văn bản với SQL Select

Hàm RTrim$() loại bỏ khoảng trắng ở cuối chuỗi. Có một hàm tương tự để loại bỏ khoảng trắng ở đầu chuỗi – đó là LTrim$().
Đây là một kỹ thuật khác:

Xử lý chuỗi và thao tác văn bản với SQL Select

Sử dụng một trong hai phương pháp trên, tìm địa chỉ kết thúc bằng văn bản “Rd”.

Bây giờ hãy xóa “Rd” khỏi chuỗi và so sánh với địa chỉ ban đầu để xác thực nó có vẻ ổn. Để làm như vậy, hãy thêm một số biểu thức vào trường Select Columns:

Address, Left$(RTrim$(Address), Len(RTrim$(Address)) – 2) “Trim”

Hàm Left$() hoạt động tương tự như hàm Right$(). Nó chỉ đọc từ đầu chuỗi.

Hàm Len() được sử dụng để “đo” độ dài của chuỗi – số lượng ký tự trong chuỗi.
Cũng bao gồm là hàm RTrim$() trong biểu thức để loại bỏ các khoảng trống bên phải khỏi địa chỉ.
Trong cửa sổ Browser bên dưới, các địa chỉ ban đầu bên trái được hiển thị và các phiên bản được cắt ở bên phải.

Xử lý chuỗi và thao tác văn bản với SQL Select

Bây giờ cũng thêm “Road” vào chuỗi và xem điều đó cũng tốt. Thêm một biểu thức khác vào trường Select Columns:

Address, Left$(RTrim$(Address), Len(RTrim$(Address)) – 2) “Trim”, Left$(RTrim$(Address), Len(RTrim$(Address)) – 2) + “Road” “New”

Xử lý chuỗi và thao tác văn bản với SQL Select

Thêm – hoặc nối – chuỗi “Road” vào phiên bản rút gọn của địa chỉ. Giữ hai cột hoặc biểu thức khác là tốt. Điều này giúp dễ dàng kiểm tra trực quan hơn nếu kết quả có vẻ chính xác.

Xử lý chuỗi và thao tác văn bản với SQL Select

Khi được xác minh rằng địa chỉ mới trông ổn, hãy cập nhật cột địa chỉ gốc với giá trị từ cột địa chỉ mới bằng Update Column

Xử lý chuỗi và thao tác văn bản với SQL Select

Hãy cẩn thận, để chọn truy vấn mới nhất và không phải bảng cơ sở khi cập nhật.

Sử dụng biểu thức cắt địa chỉ và thêm “Road” vào địa chỉ trực tiếp trong hộp thoại Update Column. Điều này có thể được sử dụng trực tiếp trên truy vấn thứ nhất hoặc thứ hai trong đó chọn các bản ghi cần được cập nhật.

Bình luận bằng Facebook Comments