So sánh chuỗi tuyệt đối trong sql năm 2024

Ở bài viết này, mình xin được giới thiệu về một số string functions thường gặp trong SQL. Ở mỗi RDBMS (Hệ quản trị cơ sở dữ liệu quan hệ) có thể sẽ sử dụng các string functions khác nhau, ngoài ra cú pháp của các function cũng có thể sẽ khác nhau với mỗi RDBMS cho dù tên chúng có giống nhau.

1. CAST

Hàm CAST trong SQL cho phép chuyển đổi dữ liệu từ kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ, chúng ta có thể sử dụng hàm CAST để chuyển đổi dữ liệu dạng số sang dạng chuỗi ký tự.

Syntax

CAST (expression AS [data type])

Ví dụ

Ở ví dụ này chúng ta sử dụng bảng StudentScore dưới đây.

StudentID First_Name Score 1 Jenny 85.2 2 Bob 92.5 3 Alice 90 4 James 120.1

  • Ví dụ 1:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

Kết quả:

First_Name  Int_Score
Jenny      85
Bob          92
Alice      90
James      120

Trong ví dụ 1 này, chúng ta đã sử dụng hàm CAST để chuyển đổi dữ liệu cột Score từ FLOAT sang INTEGER

  • Ví dụ 2:

SELECT First_Name, CAST(Score AS char(3)) Char_Score FROM Student_Score;

Kết quả:

First_Name  Char_Score
Jenny             85.
Bob                 92.
Alice             90  
James             120

Trong ví dụ 2 này, chúng ta đã sử dụng hàm CAST để chuyển đổi dữ liệu cột Score từ FLOAT sang CHAR(3). Do chỉ lấy 3 kí tự đầu tiên, nên nếu có nhiều hơn 3 kí tự, thì những kí tự sau 3 kí tự đầu sẽ bị lược bỏ đi.

2. CONCATENATE

Hàm Concatenate được sử dụng để kết hợp các xâu kí tự với nhau. Mỗi DB lại có cách riêng để tiến hành hàm này:

  • My SQL: CONCAT( )
  • Oracle: CONCAT( ), ||
  • SQL Server: +

Syntax

CONCAT (str1, str2, str3, ...)

*Đối với Oracle thì hàm CONCAT( ) chỉ cho phép 2 arguments, tuy nhiên lại có thể kết hợp nhiều hơn 2 chuỗi kí tự với cú pháp '||'

str1 || str2 || str3 ...
str1 + str2 + str3 ...

Ví dụ

Trong ví dụ này ra sử dụng bảng Geography sau:

Region_Name Store_Name East Boston East New York West Los Angeles West San Diego

  • Ví dụ 2: Sử dụng hàm CONCAT( )

MySQL / Oracle

SELECT CONCAT(Region_Name, Store_Name) FROM Geography
WHERE Store_Name = 'Boston';

Kết quả:

'EastBoston'

  • Ví dụ 1: Sử dụng '||'

Oracle:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

0

Kết quả:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

1

  • Ví dụ 3: Sử dụng '+'

SQL Server:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

2

Kết quả:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

1

3. SUBSTRING

Hàm Substring được sử dụng để trả về một phần của string đầu vào. Mỗi DB lại có cách riêng để tiến hành hàm này.

  • MySQL: SUBSTR( ), SUBSTRING( )
  • Oracle: SUBSTR( )
  • SQL Server: SUBSTRING( )

Cú pháp

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

4

Trong đó, position và length đều lại integer. Cú pháp trên có ý nghĩa là lấy ra xâu kí tự có độ dài length tính từ kí tự ở vị trí position trong xâu str.

Trong MySQL thì length là một tham số không bắt buộc, tuy nhiên ở Oracle thì length là bắt buộc.

SUBSTR() có thể được sử dụng trong mệnh đề SELECT, WHERE, và ORDER BY.

Ví dụ

Trong ví dụ này ta sử dụng bảng Geography dưới đây

Region_Name Store_Name East Chicago East New York West Los Angeles West San Diego

  • Ví dụ 1

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

5

Kết quả:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

6

  • Ví dụ 2

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

7

Kết quả:

SELECT First_Name, CAST(Score AS Integer) Int_Score FROM Student_Score

8

4.TRIM

Hàm Trim trong SQL được sử dụng để loại bỏ những tiền tố, hậu tố trong string. Trong đó, pattern thường hay được loại bỏ nhất là dấu cách (white space). Với mỗi DB khác nhau hàm này cũng được gọi khác nhau:

Hàm xử lý chuỗi trong SQL được sử dụng để thao tác với chuỗi. Bảng dưới liệt kê chi tiết các hàm xử lý chuỗi quan trọng trong SQL.

Tên hàm Miêu tả Trả về giá trị số của ký tự cực tả (bên trái nhất) Trả về một biểu diễn chuỗi của tham số Trả về độ dài (số bit) của tham số Trả về số ký tự của tham số Trả về ký tự cho mỗi số nguyên đã truyền Giống hàm CHAR_LENGTH() Viết tắt của Concatenate With Separator, là một mẫu hàm CONCAT() đặc biệt Nối chuỗi Chuyển đổi các số sang các cơ số khác nhau Trả về chuỗi tại chỉ mục Trả về một chuỗi để mà với một bit được thiết lập trong bits, bạn lấy một chuỗi on, và với mỗi khi không được thiết lập trong bits, bạn lấy chuỗi off. Các bit trong tham số bits được tính từ phải qua trái Trả về chỉ mục (vị trí) của tham số đầu tiên trong dãy các tham số Trả về chỉ mục (vị trí) của tham số đầu tiên trong tham số thứ hai Trả về một số được định dạng với một vị trí sau dấu thập phân đã cho Trả về một biểu diễn chuỗi của một giá trị thuộc hệ cơ số 16 Chèn một chuỗi con tại vị trí đã cho với số ký tự đã xác định Trả về chỉ mục cho sự xuất hiện đầu tiên của chuỗi con Giống hàm LOWER() Trả về ký tự bên trái nhất Trả về độ dài (số byte) của một chuỗi Tải file đã được đặt tên Trả về vị trí của sự xuất hiện đầu tiên của chuỗi con Trả về tham số trong kiểu chữ thường Trả về tham số chuỗi đã được thêm vào bên trái với chuỗi đã cho Xóa các Leading space (theo dõi ví dụ để hiểu ý nghĩa của leading space nếu bạn chưa biết) Trả về một tập hợp chuỗi được phân biệt bởi dấu phảy mà có bit tương ứng trong tập hợp các bit Trả về một chuỗi phụ bắt đầu từ vị trí đã cho Trả về biểu diễn chuỗi của tham số thuộc hệ cơ số 8 Giống hàm LENGTH() Nếu ký tự cực tả của tham số là một ký tự được biểu diễn bởi nhiều byte, trả về mã hóa của ký tự đó Giống hàm LOCATE() Lấy tham số để sử dụng trong một lệnh SQL Pattern matching (so khớp mẫu) sử dụng Regular Expression Lặp lại một chuỗi với số lần đã cho Thay thế một chuỗi đã cho nếu xuất hiện Đảo ngược các ký tự trong một chuỗi Trả về ký tự bên phải nhất Phụ thêm chuỗi với số lần đã cho Gỡ bỏ các Trailing space Trả về một chuỗi soundex So sánh các sound Trả về một chuỗi gồm số khoảng trống đã cho So sánh hai chuỗi Trả về một chuỗi con từ một chuỗi trước số lần xuất hiện đã cho của delimiter Trả về chuỗi phụ như đã xác định Gỡ bỏ Leading và Trailing space Giống hàm UPPER() Chuyển đổi mỗi cặp chữ số thập lục phân thành một ký tự Chuyển đổi thành chữ hoa

Hàm ASCII(str)

Trả về giá trị số của ký tự bên trái nhất (cực tả) của chuỗi str. Trả về 0 nếu str là chuỗi trống. Trả về NULL nếu str là NULL. Hàm ASCII() làm việc với các ký tự có giá trị số từ 0 tới 255.

SQL> SELECT ASCII('2'); +---------+

ASCII('2')
+---------------------------------------------------------+
50
+---------------------------------------------------------+

1 row in set (0.00 sec) SQL> SELECT ASCII('dx'); +---------+

ASCII('dx')
+---------------------------------------------------------+
100
+---------------------------------------------------------+

1 row in set (0.00 sec)

Quảng cáo

Hàm BIN(N)

Trả về một biểu diễn chuỗi của giá trị nhị phân N, với N là một số long BIGINT. Hàm này tương đương với CONV(N,10,2). Hàm trả về NULL nếu N là NULL.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm BIT_LENGTH(str)

Trả về độ dài (số bit) của chuỗi str.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm CHAR(N,... [USING ten_charset])

Hàm CHAR() thông dịch mỗi tham số N như là một số nguyên và trả về một chuỗi gồm các ký tự được cung cấp bởi các giá trị mã hóa của các số nguyên đó. Các giá trị NULL bị bỏ qua.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm CHAR_LENGTH(str)

Trả về độ dài (số ký tự) của chuỗi str. Một ký tự được biểu diễn bởi nhiều byte được đếm như là một ký tự đơn. Nghĩa là, với một chuỗi chứa 5 ký tự, mỗi ký tự có độ dài 2 byte, thì hàm LENGTH() trả về 10 còn hàm CHAR_LENGTH() trả về 5.

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm CHARACTER_LENGTH(str)

CHARACTER_LENGTH() là giống hàm CHAR_LENGTH().

Hàm CONCAT(str1,str2,...)

Trả về chuỗi là kết quả của việc nối chuỗi các tham số. Có thể có 1 hoặc nhiều tham số. Nếu tất cả tham số là các chuỗi không phải nhị phân (non-binary), kết quả là một chuỗi không phải là nhị phân. Nếu các tham số bao gồm bất kỳ chuỗi nhị phân nào, thì kết quả là một chuỗi nhị phân. Một tham số dạng số được chuyển đổi thành dạng chuỗi tương đương. Nếu bạn muốn tránh điều này, bạn có thể sử dụng một type cast tường minh, như trong ví dụ sau:

SQL> SELECT CONCAT('My', 'S', 'QL'); +---------+

CONCAT('My', 'S', 'QL')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm CONCAT_WS(separator,str1,str2,...)

Hàm CONCAT_WS() là viết tắt của Concatenate With Separator và là một dạng hàm CONCAT() đặc biệt. Tham số đầu tiên là Separator cho các tham số còn lại. Separator này được thêm vào giữa các chuỗi để được nối chuỗi. Separator có thể là một chuỗi. Nếu Separator là NULL thì kết quả trả về là NULL.

SQL> SELECT CONCAT_WS(',','First name','Last Name' ); +---------+

CONCAT_WS(',','First name','Last Name' )
+---------------------------------------------------------+
First name, Last Name
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm CONV(N,tu_co_so,sang_co_so)

Chuyển đổi số giữa các hệ cơ số khác nhau. Trả về một chuỗi biểu diễn số N, đã được chuyển đổi từ hệ cơ số tu_co_so sang hệ cơ số sang_co_so. Trả về NULL nếu bất kỳ tham số nào là NULL. Tham số N được thông dịch như là một số nguyên, nhưng có thể được xác định như là một số nguyên hoặc một chuỗi. Nếu sang_co_so là một số âm, thì N được xem như một số có dấu. Nếu không thì, N được xem như một số không dấu. Hàm CONV() làm việc với 64 bit.

SQL> SELECT CONV('a',16,2); +---------+

CONV('a',16,2)
+---------------------------------------------------------+
1010
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm ELT(N,str1,str2,str3,...)

Hàm trả về str1 nếu N = 1, trả về str2 nếu N = 2, và cứ tiếp tục như vậy. Trả về NULL nếu N nhỏ hơn 1 hoặc lớn hơn số tham số. Hàm ELT() là sự bổ sung của FIELD().

SQL> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo'); +---------+

ELT(1, 'ej', 'Heja', 'hej', 'foo')
+---------------------------------------------------------+
ej
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm EXPORT_SET(bits,on,off[,separator[,so_luong_bit]])

Trả về một chuỗi để mà với một bit được thiết lập trong bits, bạn lấy một chuỗi on, và với mỗi khi không được thiết lập trong bits, bạn lấy chuỗi off. Các bit trong tham số bits được tính từ phải qua trái. Các chuỗi được thêm vào kết quả từ trái qua phải, phân biệt nhau bởi separator (theo mặc định là dấu phảy). Số lượng bit nên được xem xét được cung cấp bởi tham số so_luong_bit (mặc định là 64).

SQL> SELECT EXPORT_SET(5,'Y','N',',',4); +---------+

EXPORT_SET(5,'Y','N',',',4)
+---------------------------------------------------------+
Y,N,Y,N
+---------------------------------------------------------+

1 row in set (0.00 sec)

Hàm FIELD(str,str1,str2,str3,...)

Trả về chỉ mục (vị trí bắt đầu từ 1) của str trong danh sách str1, str2, str3, … Trả về 0 nếu str không được tìm thấy.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

0

Hàm FIND_IN_SET(str,danh_sach_str)

Trả về một giá trị trong dãy từ 1 tới N nếu chuỗi str là trong danh sách chuỗi danh_sach_str chứa N chuỗi con.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

1

Hàm FORMAT(X,D)

Định dạng số X trong định dạng như '#,###,###.##', được làm tròn về D vị trí sau dấu phảy, và trả về kết quả dưới dạng một chuỗi. Nếu D là 0, thì kết quả không có dấu thập phân hay phần thập phân.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

2

Hàm HEX(So_hoac_Chuoi)

Nếu So_hoac_Chuoi là một số, trả về một biểu diễn chuỗi của giá trị thập lục phân N, với N là một số long BIGINT. Hàm này tương đương với hàm CONV(N,10,16).

Nếu So_hoac_Chuoi là một chuỗi, trả về biểu diễn chuỗi thập lục phân của So_hoac_Chuoi với mỗi ký tự trong đó được chuyển đổi thành hai chữ số thập lục phân.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

3

Hàm INSERT(str,pos,len,newstr)

Trả về chuỗi str, với chuỗi con bắt đầu tại vị trí pos tới len được thay thế với chuỗi newstr. Trả về chuỗi ban đầu nếu giá trị tham số pos là không nằm trong độ dài của chuỗi. Thay thế phần còn lại của chuỗi từ vị trí pos nếu giá trị tham số len là không ở trong độ dài phần còn lại của chuỗi. Trả về NULL nếu bất kỳ tham số nào là NULL.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

4

Hàm INSTR(str,substr)

Trả về vị trí của lần xuất hiện đầu tiên của chuỗi con substr trong chuỗi str. Hàm này tương tự như dạng hai tham số của hàm LOCATE(), ngoại trừ việc thứ tự của tham số bị đảo ngược.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

5

Hàm LCASE(str)

Hàm LCASE() là giống hàm LOWER().

Hàm LEFT(str,len)

Trả về các ký tự có độ dài len bắt đầu từ bên trái nhất của chuỗi str, hoặc trả về NULL nếu bất kỳ tham số nào là NULL.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

6

Hàm LENGTH(str)

Trả về độ dài (số byte) của chuỗi str. Một ký tự được biểu diễn bằng bao nhiêu byte thì đếm bấy nhiêu byte. Nghĩa là, với một chuỗi chứa 5 ký tự, mỗi ký tự có độ dài 2 byte, hàm LENGTH() trả về 10, trong khi hàm CHAR_LENGTH() trả về 5.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

7

Hàm LOAD_FILE(ten_file)

Đọc file và trả về các nội dung file dưới dạng chuỗi. Để sử dụng hàm này, file phải được đặt trên Server Host, bạn phải xác định pathname đầy đủ tới file đó, và bạn phải có quyền FILE. File phải là có thể đọc bởi tất cả mọi người và kích cỡ của nó nhỏ hơn max_allowed_packet byte.

Nếu file không tồn tại hoặc không thể đọc bởi vì một trong các điều kiện trước đó không được thỏa mãn, hàm sẽ trả về NULL.

Như trong SQL 5.0.19, biến hệ thống character_set_filesystem điều khiển trình thông dịch các filename mà được cung cấp ở dạng literal string (chuỗi hằng).

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

8

Quảng cáo

Hàm LOCATE(substr,str), LOCATE(substr,str,pos)

Cú pháp đầu tiên trả về vị trí của lần xuất hiện đầu tiên của chuỗi phụ substr trong chuỗi str. Cú pháp thứ hai trả về vị trí của lần xuất hiện đầu tiên của chuỗi phụ substr trong chuỗi str, bắt đầu từ vị trí pos. Trả về 0 nếu substr là không trong str.

SQL> SELECT BIN(12); +---------+

BIN(12)
+---------------------------------------------------------+
1100
+---------------------------------------------------------+

1 row in set (0.00 sec)

9

Hàm LOWER(str)

Trả về chuỗi str với tất cả ký tự đã được chuyển đổi thành chữ thường.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

0

Hàm LPAD(str,len,padstr)

Trả về chuỗi str, đã được phụ thêm vào bên trái bởi chuỗi padstr với len ký tự. Nếu str là dài hơn len, thì giá trị trả về bị rút gọn về len ký tự.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

1

Hàm LTRIM(str)

Trả về chuỗi str sau khi gỡ bỏ các Leading space.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

2

Hàm MAKE_SET(bits,str1,str2,...)

Trả về một tập giá trị (một chuỗi chứa các chuỗi con phân biệt nhau bởi dấu chấm phảy) gồm các chuỗi mà có bit tương ứng trong tập bits. Tham số str1 tương ứng với bit 0, str2 tương ứng bit 1, và cứ tiếp tục. Các giá trị NULL trong str1, str2, … không được phụ thêm vào kết quả.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

3

Hàm MID(str,pos,len)

Hàm MID(str,pos,len) là giống hàm SUBSTRING(str,pos,len).

Hàm OCT(N)

Trả về một biểu diễn chuỗi của giá trị bát phân N, với N là một số long BIGINT. Hàm này tương đương với hàm CONV(N,10,8). Trả về NULL nếu N là NULL.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

4

Hàm OCTET_LENGTH(str)

Hàm OCTET_LENGTH() là giống hàm LENGTH().

Hàm ORD(str)

Nếu ký tự bên trái nhất của chuỗi str là một ký tự được biểu diễn bởi nhiều byte, trả về mã hóa cho ký tự đó, được tính toán từ các giá trị số của các byte cấu thành bởi sử dụng công thức này.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

5

Nếu ký tự bên trái nhất không là một ký tự được biểu diễn bởi nhiều byte, hàm ORD() trả về cùng giá trị như hàm ASCII().

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

6

Hàm POSITION(substr IN str)

Hàm POSITION(substr IN str) là giống hàm LOCATE(substr,str).

Hàm QUOTE(str)

Trích dẫn một chuỗi để cho một kết quả mà có thể được sử dụng như là một giá trị dữ liệu bị thoát trong một lệnh SQL. Chuỗi được trả về được bao trong các trích dẫn đơn và với mỗi sự thể hiện của ('), ('\'), ASCII NULL, và Control-Z đều được đặt trước bởi một dấu gạch chéo ngược (\). Nếu tham số là NULL, giá trị trả về là từ NULL không được bao trong dấu trích dẫn đơn.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

7

GHI CHÚ: Nếu bạn kiểm tra lại cài đặt, và nếu có bất kỳ bug với hàm này, thì tốt hơn hết là đừng sử dụng nó.

Hàm expr REGEXP pattern

Hàm này thực hiện một so khớp mẫu (pattern match) của expr với pattern. Trả về 1 nếu expr so khớp với pattern, nếu không thì trả về 0. Nếu expr hoặc pattern là NULL, thì kết quả là NULL. REGEXP là không phân biệt kiểu chữ, ngoại trừ khi được sử dụng với các chuỗi nhị phân.

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

8

Một ví dụ khác là:

SQL> SELECT BIT_LENGTH('text'); +---------+

BIT_LENGTH('text')
+---------------------------------------------------------+
32
+---------------------------------------------------------+

1 row in set (0.00 sec)

9

Thêm một ví dụ nữa:

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

0

Hàm REPEAT(str,count)

Trả về một chuỗi chứa chuỗi str được lặp lại count lần. Nếu count là nhỏ hơn 1, trả về chuỗi trống. Trả về NULL nếu str hoặc count là NULL.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

1

Hàm REPLACE(str,from_str,to_str)

Trả về chuỗi str với tất cả lần xuất hiện của chuỗi từ from_str được thay thế bởi chuỗi to_str. Hàm REPLACE() thực hiện một so khớp phân biệt kiểu chữ khi tìm kiếm cho from_str.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

2

Hàm REVERSE(str)

Trả về chuỗi str với thứ tự các ký tự bị đảo ngược.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

3

Hàm RIGHT(str,len)

Trả về len ký tự ở bên phải nhất từ chuỗi str, hoặc NULL nếu bất kỳ tham số nào là NULL.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

4

Hàm RPAD(str,len,padstr)

Trả về chuỗi str, đã được thêm vào bên phải với chuỗi padstr với độ dài là len ký tự. Nếu str là dài hơn len, giá trị trả về bị rút gọn về len ký tự.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

5

Hàm RTRIM(str)

Trả về chuỗi str sau khi đã loại bỏ các Trailing space.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

6

Hàm SOUNDEX(str)

Trả về một chuỗi soundex từ str.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

7

Hàm bieu_thuc_1 SOUNDS LIKE bieu_thuc_2

Hàm này giống dạng SOUNDEX(bieu_thuc_1) = SOUNDEX(bieu_thuc_2).

Hàm SPACE(N)

Trả về một chuỗi chứa N ký tự khoảng trống.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

8

Hàm STRCMP(str1, str2)

So sánh hai chuỗi và trả về 0 nếu cả hai chuỗi là tương đương, trả về -1 nếu tham số đầu là nhỏ hơn tham số thứ hai theo thứ tự sắp xếp hiện tại, nếu không thì trả về 1.

SQL> SELECT CHAR(77,121,83,81,'76'); +---------+

CHAR(77,121,83,81,'76')
+---------------------------------------------------------+
SQL
+---------------------------------------------------------+

1 row in set (0.00 sec)

9

Một ví dụ khác:

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

0

Bạn theo dõi thêm một ví dụ:

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

1

Hàm SUBSTRING(str,pos)

Hàm SUBSTRING(str FROM pos)

Hàm SUBSTRING(str,pos,len)

Hàm SUBSTRING(str FROM pos FOR len)

Mẫu hàm mà không có tham số len sẽ trả về một chuỗi con từ chuỗi str bắt đầu tại vị trí pos. Mẫu hàm với tham số len trả về một chuỗi phụ có độ dài là len ký tự từ chuỗi str bắt đầu từ vị trí pos. Mẫu hàm sử dụng FROM là cú pháp SQL chuẩn. Cũng có thể sử dụng một giá trị âm cho pos. Trong trường hợp này, phần bắt đầu của chuỗi phụ là các ký tự pos từ phần cuối của chuỗi, thay vì phần bắt đầu. Một giá trị âm có thể được sử dụng cho pos trong bất kỳ mẫu hàm nào.

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

2

Hàm SUBSTRING_INDEX(str,delim,count)

Trả về chuỗi con từ chuỗi str trước count lần xuất hiện của delimiter được xác định bởi delim. Nếu count là dương, mọi thứ bên trái của delimeter cuối cùng (đếm từ trái) sẽ được trả về. Nếu count là âm, mọi thứ bên phải của delimiter cuối cùng (đếm từ phải) sẽ được trả về. Hàm SUBSTRING_INDEX() thực hiện một so khớp phân biệt kiểu chữ khi tìm kiếm cho delim.

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

3

Hàm TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

Hàm TRIM([remstr FROM] str)

Trả về chuỗi str với tất cả tiền tố hoặc hậu tố remstr đã bị gỡ bỏ. Nếu không có specifier nào (ví dụ: BOTH, LEADING, TRAILING) được cung cấp, thì BOTH là mặc định. Tham số remstr là tùy ý và nếu không được xác định, các khoảng trống bị gỡ bỏ.

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

4

Hàm UCASE(str)

Hàm UCASE() là giống hàm UPPER().

Hàm UNHEX(str)

Thực hiện ngược lại với hàm HEX(str). Nghĩa là, nó thông dịch mỗi cặp chữ số thập lục phân trong tham số như là một số và chuyển đổi nó sang ký tự được biểu diễn bởi số đó. Các ký tự kết quả được trả về dưới dạng một chuỗi nhị phân.

SQL> SELECT CHAR_LENGTH("text"); +---------+

CHAR_LENGTH("text")
+---------------------------------------------------------+
4
+---------------------------------------------------------+

1 row in set (0.00 sec)

5

Các ký tự trong chuỗi tham số phải là các chữ số thập lục phân: '0' … '9', 'A' … 'Z', 'a … 'z'. Nếu hàm UNHEX() gặp bất kỳ chữ số không phải thập lục phân trong tham số, nó trả về NULL.