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,str pad)

该函数将字符串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”。

替换(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,str pad)

该函数将字符串str pad右填充到字符串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”。