SQL中的字符串函数
SQL中的字符串函数都用于操作字符串值。SQL指定了许多字符串函数。其中一些领域如下:
ASCII码(str)
此函数返回提供的字符串str中第一个单词的ASCII或数字值。如果为空字符串,则返回0。
例
SQL> SELECT ASCII('Sam'); +---------------------------------------------------------+ | ASCII('Sam') | +---------------------------------------------------------+ | 83 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
这将返回S的ASCII值,即83,因为它是字符串中的第一个字符。
BIN(n)
这里n是二进制数,此函数提供n的字符串转换。如果n为NULL,则返回NULL。
例
SQL> SELECT BIN(10); +---------------------------------------------------------+ | BIN(10) | +---------------------------------------------------------+ | 1010 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
这提供了二进制形式的10的字符串转换,即1010。
BIT_LENGTH(str)
此函数以位的形式返回字符串str的长度。
SQL> SELECT BIT_LENGTH('ball'); +---------------------------------------------------------+ | BIT_LENGTH('ball') | +---------------------------------------------------------+ | 32 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“Ball”的长度为32位。
CHAR_LENGTH(str)
这将返回str的长度。长度以字符串中字符的形式度量。
SQL> SELECT CHAR_LENGTH("ball");+---------------------------------------------------------+| CHAR_LENGTH("ball") |+---------------------------------------------------------+| 4 |+---------------------------------------------------------+1 row in set (0.00 sec)
字符串“Ball”包含四个字符,因此输出为4。
CONCAT(str1,str2…..strn)
该函数返回通过连接参数列表中的所有字符串形成的字符串。这些字符串可能只有两个或多个,但它们都将被连接在一起。
例
SQL> SELECT CONCAT('Apple', 'Is', 'Red'); +---------------------------------------------------------+ | CONCAT('Apple', 'Is', 'Red') | +---------------------------------------------------------+ |AppleIsRed | +---------------------------------------------------------+ 1 row in set (0.00 sec)
三个字符串“Apple”,“Is”,“Red”连接成一个字符串,即“AppleIsRed”。
CONV(n,base1,base2)
此函数将数字n从base1转换为base2。它以字符串形式返回数字n。
SQL> SELECT CONV(‘10',8,2); +---------------------------------------------------------+ | CONV('10',8,2) | +---------------------------------------------------------+ | 1000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
值10从八进制转换为十进制,即1000。
格式(n,d)
此函数格式化十进制数字n并将其舍入到d小数位。
例
SQL> SELECT FORMAT(32322.13783, 2); +---------------------------------------------------------+ | FORMAT(32322.13783, 2) | +---------------------------------------------------------+ | 32,322.14 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
数字32322.13783会四舍五入为32,322.14,并进行格式化,即添加适当的逗号。
十六进制(n)
在此函数中,以字符串形式返回n的十六进制值。
例
SQL> SELECT HEX(175); +---------------------------------------------------------+ | HEX(175) | +---------------------------------------------------------+ | AF | +---------------------------------------------------------+ 1 row in set (0.00 sec)
十进制175的十六进制值为AF。以字符串形式返回。
左(str,n)
此函数返回字符串str中最左边的n个字符。如果字符串为空,则返回NULL。
例
SQL> SELECT LEFT('JohnSmith', 4); +---------------------------------------------------------+ | LEFT('JohnSmith', 4) | +---------------------------------------------------------+ | John | +---------------------------------------------------------+ 1 row in set (0.00 sec)
此函数返回“JohnSmith”中最左边的4个字符。这样就返回了“约翰”。
长度(str)
此函数返回字符串str的长度(以字节为单位)。
例
SQL> SELECT LENGTH('ball'); +---------------------------------------------------------+ | LENGTH('ball') | +---------------------------------------------------------+ | 4 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“ball”的长度以字节为单位返回,即4。
降低(str)
此功能将所有大写字符转换为小写。
例
SQL> SELECT LOWER('CRICKET'); +---------------------------------------------------------+ | LOWER('CRICKET') | +---------------------------------------------------------+ | cricket | +---------------------------------------------------------+ 1 row in set (0.00 sec)
“CRICKET”的所有字符都转换为小写字母,即“CRICKET”
LPAD(str,l,strpad)
该函数将字符串strpad右填充到字符串str的长度为l。如果strpad大于长度l,则其余字符串被剪切。
例
SQL> SELECT LPAD('Dear',4,'Hi'); +---------------------------------------------------------+ | LPAD('John',4,'Hi') | +---------------------------------------------------------+ | HiJohn | +--------------------------------------------------------+ 1 row in set (0.00 sec)
这会在字符串“John”的左侧填充“Hi”,从而产生字符串“HiJohn”。
替换(str,s1,s2)
此函数用s2替换字符串str中的s1的所有实例。因此,无论s1在字符串str中何处,返回的字符串都包含s2。
例
SQL> SELECT REPLACE('Happy', 'p', 'pp'); +---------------------------------------------------------+ | REPLACE('Happy', '', 'pp') | +---------------------------------------------------------+ | Happppy | +---------------------------------------------------------+ 1 row in set (0.00 sec)
在字符串“Happy”中,所有出现的“p”都将与“pp”交换。
反向(str)
此函数反转字符串str并返回它。
例
SQL> SELECT REVERSE('apple'); +---------------------------------------------------------+ | REVERSE('apple') | +---------------------------------------------------------+ | elppa | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“apple”反转并返回为“elppa”
右(str,n)
此函数返回字符串str中最右边的n个字符。如果字符串为空,则返回NULL。
例
SQL> SELECT RIGHT('JohnSmith', 5); +---------------------------------------------------------+ | RIGHT('JohnSmith', 5) | +---------------------------------------------------------+ | Smith | +---------------------------------------------------------+ 1 row in set (0.00 sec)
此函数从字符串“JohnSmith”返回最右边的五个字符,即“Smith”
RPAD(str,l,strpad)
该函数将字符串strpad右填充到字符串str的长度为l。如果strpad大于长度l,则其余字符串被剪切。
SQL> SELECT RPAD('hello',5,'!'); +---------------------------------------------------------+ | RPAD('hello',5,'!') | +---------------------------------------------------------+ | hello! | +---------------------------------------------------------+ 1 row in set (0.00 sec)
此功能填充字符串“!”在字符串“hello”的右侧。
STRCMP(str1,str2)
此函数比较字符串str1和str2。如果两个字符串相等,则返回0;如果str1大于str2,则返回1;如果str2大于str1,则返回-1。
SQL> SELECT STRCMP('HARRY', 'HARRY'); +---------------------------------------------------------+ | STRCMP('HARRY', 'HARRY') | +---------------------------------------------------------+ | 0 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
该函数返回0,因为字符串“HARRY”和“HARRY”相同。
上(str)
此功能将所有小写字符转换为大写。
SQL> SELECT UPPER('apple'); +---------------------------------------------------------+ | UPPER('apple') | +---------------------------------------------------------+ | APPLE| +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“car”以大写形式转换为“CAR”。