SQL Server: Hàm Xử Lý Chuỗi | V1Study

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:

STR(Số_hoặc_Chuỗi_số)

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ụ:

SELECT STR(123456); --sẽ trả về chuỗi '123456' SELECT STR(123.45); -- → '123' SELECT STR(123.5); -- → '124' SELECT STR(1234567890); -- → '1234567890' SELECT STR(12345678901); --sẽ trả về chuỗi '**********' vì số có độ dài >10

Kết quả:

SQL - Hàm STR()

Khi bạn đặt số vào trong chuỗi thì kết quả cũng tương tự như trên:

SELECT STR('123456'); -- vẫn sẽ trả về chuỗi '123456' SELECT STR('123.45'); -- → '123' SELECT STR('123.5'); -- → '124' SELECT STR('1234567890'); -- → '1234567890' SELECT STR('12345678901'); -- → '**********'

Cú pháp đầy đủ:

STR(Số_hoặc_Chuỗi_số, Độ_rộng_trường, Độ_chính_xác)

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:

SELECT STR(123456,5,1); --sẽ trả về chuỗi '*****' SELECT STR(123456,6,1); -- → '123456' SELECT STR(123456,7,1); -- → '123456' SELECT STR(123456,8,1); -- → '123456.0' SELECT STR(123456,10,1); -- → ' 123456.0'

Kết quả:

SQL - Hàm STR() cú pháp đầy đủ

2. SUBSTRING()

SUBSTRING() dùng để lấy chuỗi con trong một chuỗi.

Cú pháp:

SUBSTRING('Chuỗi', Vị_trí, Số_lượng)

Ví dụ:

SELECT SUBSTRING('V1Study',2,3); --sẽ trả về chuỗi con '1St'

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:

LEFT('Chuỗi',Số_ký_tự)

Ví dụ:

SELECT LEFT('V1Study',2); --sẽ trả về chuỗi 'V1'

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:

RIGHT('Chuỗi',Số_ký_tự)

Ví dụ:

SELECT RIGHT('V1Study',5); --sẽ trả về chuỗi 'Study'

5. LEN()

Hàm LEN() dùng để lấy kích thước của một chuỗi.

Cú pháp:

LEN('Chuỗi')

Ví dụ:

SELECT LEN('V1Study'); --sẽ trả về số 7

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:

LOWER('Chuỗi')

Ví dụ:

SELECT LOWER('V1Study'); --sẽ trả về: 'v1study'

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:

UPPER('Chuỗi')

Ví dụ:

SELECT UPPER('V1Study'); --sẽ trả về: 'V1STUDY'

8. LTRIM()

Hàm LTRIM() dùng để xoá tất cả các ký tự trắng (space) ở đầu chuỗi.

Cú pháp:

LTRIM('Chuỗi')

Ví dụ:

SELECT LTRIM(' V1Study '); --sẽ trả về: 'V1Study '

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:

RTRIM('Chuỗi')

Ví dụ:

SELECT RTRIM(' V1Study '); -- trả về chuỗi: ' V1Study'

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:

ASCII('Ký_tự')

Ví dụ:

SELECT ASCII('A'); -- → 65

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ụ:

SELECT ASCII('abc123'); -- sẽ trả về số 97 (là vị trí của ký tự 'a')

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:

CHAR(Vị_trí)

Ví dụ:

SELECT CHAR(65); -- → 'A'

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:

STUFF('chuỗi_gốc', start, length, 'chuỗi_thêm_vào')

, 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ụ:

PRINT STUFF('abcdef', 2, 3, 'ijklmn');

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:

SUBSTR('chuỗi_gốc', n)

, 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ụ:

PRINT SUBSTR('abcdef', 2);

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ụ:

PRINT REVERSE('abcdef'); --> In ra kết quả: 'fedcba'

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:

REPLICATE('chuỗi', n)

, 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ụ:

PRINT REPLICATE('abc', 3);

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ụ:

PRINT DATALENGTH('123456Â'); --> In ra 7 PRINT DATALENGTH(N'123456Â'); --> In ra 14

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ụ:

PRINT REPLACE('V1study', 'study', 'Study'); --> In ra: V1Study

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ụ:

SELECT CONCAT('V', 1, 'Study'); --> In ra: V1Study

Từ khóa » Tách Cột Trong Sql