SQL Server: Hàm xử lý chuỗi
Dưới đây chúng ta sẽ tìm hiểu một số hàm xử lý chuỗi phổ dụng trong SQL Server. Các bạn cần lưu ý rằng các hàm này chỉ áp dụng được cho câu lệnh SELECT.
1. STR()
Hàm STR() trả về một chuỗi số từ một số hoặc một chuỗi số khác là đối số của hàm.
Cú pháp đơn giản:
Cú pháp trên sẽ trả về một chuỗi số có độ chính xác là 0 và dành 10 khoảng độ rộng trường để chứa kết quả. Trong trường hợp kết quả có kích thước lớn hớn 10 thì hàm STR() sẽ trả về 10 ký tự dấu *.
Ví dụ:
Kết quả:
Khi bạn đặt số vào trong chuỗi thì kết quả cũng tương tự như trên:
Cú pháp đầy đủ:
Cú pháp trên sẽ cho phép bạn chủ động đưa ra độ rộng trường và độ chính xác mong muốn cho kết quả trả về.
Lưu ý :
+ Độ_rộng_trường bao gồm dấu (+ hoặc -), dấu chấm thập phân, các ký số và dấu cách.
+ Nếu kết quả có kích thước lớn hơn Độ_rộng_trường thì hàm STR() sẽ trả về chuỗi gồm Độ_rộng_trường ký tự *.
+ Nếu kết quả có kích thước nhỏ hơn Độ_rộng_trường thì hàm STR() sẽ trả về chuỗi kết quả và phía trước kết quả là số lượng khoảng trắng (space) tương ứng với độ lệch giữa Độ_rộng_trường và kích thước kết quả.
+ Độ_chính_xác tối đa cho phép đối với kết quả là 16 con số sau dấu chấm thập phân.
Dưới đây là một số ví dụ cho phần lưu ý trên:
Kết quả:
2. SUBSTRING()
SUBSTRING() dùng để lấy chuỗi con trong một chuỗi.
Cú pháp:
Ví dụ:
3. LEFT()
Hàm LEFT() dùng để lấy một số ký tự đầu tiên biên trái của một chuỗi.
Cú pháp:
Ví dụ:
4. RIGHT()
RIGHT() dùng để lấy một số ký tự đầu tiên biên phải của một chuỗi.
Cú pháp:
Ví dụ:
5. LEN()
Hàm LEN() dùng để lấy kích thước của một chuỗi.
Cú pháp:
Ví dụ:
6. LOWER()
Hàm LOWER() dùng để chuyển tất cả các ký tự in hoa trong một chuỗi thành in thường.
Cú pháp:
Ví dụ:
7. UPPER()
Hàm UPPER() dùng để chuyển tất cả các ký tự in thường trong một chuỗi thành in hoa.
Cú pháp:
Ví dụ:
8. LTRIM()
Hàm LTRIM() dùng để xoá tất cả các ký tự trắng (space) ở đầu chuỗi.
Cú pháp:
Ví dụ:
9. RTRIM()
Hàm RTRIM() dùng để xoá tất cả các ký tự trắng (space) ở cuối chuỗi.
Cú pháp:
Ví dụ:
10. ASCII()
Hàm ASCII() dùng để lấy vị trí trong bảng mã ASCII của một ký tự.
Cú pháp:
Ví dụ:
Nếu trong cặp nháy đơn không phải là Ký_tự mà là một chuỗi thì hàm ASCII() sẽ lấy ký tự đầu tiên của chuỗi và trả về vị trí trong bảng mã ASCII của ký tự đó.
Ví dụ:
11. CHAR()
CHAR() có tác dụng ngược với hàm ASCII(), nó dùng để lấy ký tự tương ứng vị trí trong bảng mã ASCII.
Cú pháp:
Ví dụ:
Nếu Vị_trí không có trong bảng mã ASCII thì hàm CHAR() sẽ trả về NULL.
12. STUFF()
STUFF() dùng để chèn một chuỗi vào một phần của chuỗi gốc và trả về chính chuỗi mới đó. Nó xóa số lượng ký tự xác định bắt đầu từ vị trí chỉ định rồi chèn chuỗi mong muốn vào đó.
Cú pháp:
, trong đó:
- chuỗi_gốc: là chuỗi mà ta muốn thay đổi, có thể là hằng chuỗi, biến chuỗi hoặc một cột chứa dữ liệu chuỗi hoặc nhị phân.
- start: là một số nguyên thể hiện vị trí nơi xảy ra thay đổi, nếu start hay length là số âm thì hàm trả về chuỗi rỗng.
Ví dụ:
Câu lệnh trên có nghĩa là thay thế 3 ký tự bắt đầu từ vị trí thứ 2 (tương đương với 'bcd') bằng chuỗi 'ijklmn'. Dưới đây là kết quả:
aijklmnef
13. SUBSTR()
Hàm này dùng cho MySQL có tác dụng lấy chuỗi bắt đầu từ ký tự thứ n.
Cú pháp:
, trong đó:
- chuỗi_gốc: là chuỗi mà ta muốn thay đổi, có thể là hằng chuỗi, biến chuỗi hoặc một cột chứa dữ liệu chuỗi hoặc nhị phân.
- n: là một số nguyên thể hiện vị trí nơi xảy ra thay đổi, nếu start hay length là số âm thì hàm trả về chuỗi rỗng.
Ví dụ:
Câu lệnh trên sẽ trả về chuỗi 'bcdef'.
14. REVERSE()
Hàm này dùng để đảo ngược chuỗi.
Ví dụ:
Câu lệnh trên sẽ trả về chuỗi 'bcdef'.
15. REPLICATE()
Hàm này có tác dụng lặp chuỗi.
Cú pháp:
, trong đó:
- chuỗi: là chuỗi mà ta muốn lặp, có thể là hằng chuỗi, biến chuỗi hoặc một cột chứa dữ liệu chuỗi hoặc nhị phân.
- n: là một số nguyên thể hiện số lần lặp chuỗi, nếu n = 0 thì trả về chuỗi rỗng, nếu n < 0 thì trả về NULL.
Ví dụ:
Câu lệnh trên sẽ trả về chuỗi 'abcabcabc'.
16. DATALENGTH()
Hàm này sẽ trả về số Byte tương ứng với chuỗi, gấp đôi đối với Unicode.
Ví dụ:
17. REPLACE()
Hàm này sẽ thay thế phần chuỗi trong mẫu chuỗi bằng chuỗi mới.
Ví dụ:
18. CONCAT()
Hàm này sẽ có tác dụng nối chuỗi, và nối được cả chuỗi và số.
Ví dụ: