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”。