SQL中的字符串函数都用于操作字符串值。SQL指定了许多字符串函数。其中一些领域如下:
此函数返回提供的字符串str中第一个单词的ASCII或数字值。如果为空字符串,则返回0。
例
SQL> SELECT ASCII('Sam'); +---------------------------------------------------------+ | ASCII('Sam') | +---------------------------------------------------------+ | 83 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
这将返回S的ASCII值,即83,因为它是字符串中的第一个字符。
这里n是二进制数,此函数提供n的字符串转换。如果n为NULL,则返回NULL。
例
SQL> SELECT BIN(10); +---------------------------------------------------------+ | BIN(10) | +---------------------------------------------------------+ | 1010 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
这提供了二进制形式的10的字符串转换,即1010。
此函数以位的形式返回字符串str的长度。
SQL> SELECT BIT_LENGTH('ball'); +---------------------------------------------------------+ | BIT_LENGTH('ball') | +---------------------------------------------------------+ | 32 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“ Ball”的长度为32位。
这将返回str的长度。长度以字符串中字符的形式度量。
SQL> SELECT CHAR_LENGTH("ball");+---------------------------------------------------------+| CHAR_LENGTH("ball") |+---------------------------------------------------------+| 4 |+---------------------------------------------------------+1 row in set (0.00 sec)
字符串“ Ball”包含四个字符,因此输出为4。
该函数返回通过连接参数列表中的所有字符串形成的字符串。这些字符串可能只有两个或多个,但它们都将被连接在一起。
例
SQL> SELECT CONCAT('Apple', 'Is', 'Red'); +---------------------------------------------------------+ | CONCAT('Apple', 'Is', 'Red') | +---------------------------------------------------------+ |AppleIsRed | +---------------------------------------------------------+ 1 row in set (0.00 sec)
三个字符串“ Apple”,“ Is”,“ Red”连接成一个字符串,即“ AppleIsRed”。
此函数将数字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小数位。
例
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的十六进制值。
例
SQL> SELECT HEX(175); +---------------------------------------------------------+ | HEX(175) | +---------------------------------------------------------+ | AF | +---------------------------------------------------------+ 1 row in set (0.00 sec)
十进制175的十六进制值为AF。以字符串形式返回。
此函数返回字符串str中最左边的n个字符。如果字符串为空,则返回NULL。
例
SQL> SELECT LEFT('JohnSmith', 4); +---------------------------------------------------------+ | LEFT('JohnSmith', 4) | +---------------------------------------------------------+ | John | +---------------------------------------------------------+ 1 row in set (0.00 sec)
此函数返回“ JohnSmith”中最左边的4个字符。这样就返回了“约翰”。
此函数返回字符串str的长度(以字节为单位)。
例
SQL> SELECT LENGTH('ball'); +---------------------------------------------------------+ | LENGTH('ball') | +---------------------------------------------------------+ | 4 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“ ball”的长度以字节为单位返回,即4。
此功能将所有大写字符转换为小写。
例
SQL> SELECT LOWER('CRICKET'); +---------------------------------------------------------+ | LOWER('CRICKET') | +---------------------------------------------------------+ | cricket | +---------------------------------------------------------+ 1 row in set (0.00 sec)
“ CRICKET”的所有字符都转换为小写字母,即“ CRICKET”
该函数将字符串str pad右填充到字符串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”。
此函数用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并返回它。
例
SQL> SELECT REVERSE('apple'); +---------------------------------------------------------+ | REVERSE('apple') | +---------------------------------------------------------+ | elppa | +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“ apple”反转并返回为“ elppa”
此函数返回字符串str中最右边的n个字符。如果字符串为空,则返回NULL。
例
SQL> SELECT RIGHT('JohnSmith', 5); +---------------------------------------------------------+ | RIGHT('JohnSmith', 5) | +---------------------------------------------------------+ | Smith | +---------------------------------------------------------+ 1 row in set (0.00 sec)
此函数从字符串“ JohnSmith”返回最右边的五个字符,即“ Smith”
该函数将字符串str pad右填充到字符串str的长度为l。如果strpad大于长度l,则其余字符串被剪切。
SQL> SELECT RPAD('hello',5,'!'); +---------------------------------------------------------+ | RPAD('hello',5,'!') | +---------------------------------------------------------+ | hello! | +---------------------------------------------------------+ 1 row in set (0.00 sec)
此功能填充字符串“!” 在字符串“ hello”的右侧。
此函数比较字符串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”相同。
此功能将所有小写字符转换为大写。
SQL> SELECT UPPER('apple'); +---------------------------------------------------------+ | UPPER('apple') | +---------------------------------------------------------+ | APPLE| +---------------------------------------------------------+ 1 row in set (0.00 sec)
字符串“ car”以大写形式转换为“ CAR”。