SQL三学教程 - 字符串函数

SQL字符串函数主要用于字符串操作。 下表详述了重要的字符串函数:

Name Description
ASCII() 返回最左边字符的数值
BIN() 返回参数的字符串表示形式
BIT_LENGTH() 返回参数的长度(以位为单位)
CHAR_LENGTH() 返回参数中的字符数
CHAR() 返回每个传递的整数的字符
CHARACTER_LENGTH() CHAR_LENGTH()相同,返回参数中的字符数
CONCAT_WS() 返回与separator分隔
CONCAT() 返回连接的字符串
CONV() 在不同数字之间转换数字
ELT() 返回索引号处的字符串
EXPORT_SET() 返回一个字符串,使得对于值位中设置的每个位,您将获得一个on字符串,并且对于每个unset位,您将得到一个off字符串
FIELD() 返回后续参数中第一个参数的索引(位置)
FIND_IN_SET() 返回第二个参数中第一个参数的索引位置
FORMAT() 返回格式为指定小数位数的数字
HEX() 返回十六进制值的字符串表示形式
INSERT() 在指定位置插入一个子字符串,直到指定的字符数
INSTR() 返回第一次出现子字符串的索引
LCASE() 同LOWER()
LEFT() 返回指定的最左边的字符数
LENGTH() 返回字符串的长度(以字节为单位)
LOAD_FILE() 加载命名文件
LOCATE() 返回第一次出现子字符串的位置
LOWER() 以小写返回参数
LPAD() 返回字符串参数,用指定的字符串向左填充
LTRIM() 删除前导空格
MAKE_SET() 返回一组逗号分隔的字符串,它们具有设置的位中的相应位
MID() 返回从指定位置开始的子字符串
OCT() 返回八进制参数的字符串表示形式
OCTET_LENGTH() 同LENGTH(),返回字符串的长度(以字节为单位)
ORD() 如果参数的最左边的字符是多字节字符,则返回该字符的代码
POSITION() 同LOCATE(),返回第一次出现子字符串的位置
QUOTE() 转义要在SQL语句中使用的参数
REGEXP 使用正则表达式的模式匹配
REPEAT() 重复字符串指定的次数
REPLACE() 替换指定字符串的出现
REVERSE() 反转字符串中的字符
RIGHT() 返回指定的最右边字符数
RPAD() 追加字符串指定的次数
RTRIM() 删除尾随空格
SOUNDEX() 返回由四个字符组成的代码 (SOUNDEX) 以评估两个字符串的相似性
SOUNDS LIKE SOUNDEX()
SPACE() 返回指定数目个空格的字符串
STRCMP() 比较两个字符串
SUBSTRING_INDEX() 返回在分隔符的指定出现次数之前的字符串中的子字符串
SUBSTRING(), SUBSTR() 返回指定的子字符串
TRIM() 删除前导和尾随空格
UCASE() 同UPPER
UNHEX() 将每对十六进制数字转换为一个字符
UPPER() 转换为大写

ASCII(STR)

返回字符串str的最左字符的数值。如果str是空字符串,返回0。,则返回null str为NULL。的ASCII()适用于从0到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)

BIN(N)

返回的N,其中N是一个longlong(BIGINT)数字的二进制值的字符串表示。这相当于CONV(N,10,2)。,则返回null N为NULL。

SQL> SELECT BIN(12);
+---------------------------------------------------------+
| BIN(12)                                                 |
+---------------------------------------------------------+
| 1100                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_LENGTH(STR)

返回位字符串str的长度。

SQL> SELECT BIT_LENGTH('text');
+---------------------------------------------------------+
| BIT_LENGTH('text')                                      |
+---------------------------------------------------------+
| 32                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHAR(N,... [使用charset_name中])

CHAR()解释每一个参数n为整数并返回由这些整数的代码值给出的字符的字符串。NULL值被跳过。

SQL> SELECT CHAR(77,121,83,81,'76');
+---------------------------------------------------------+
| CHAR(77,121,83,81,'76')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHAR_LENGTH(STR)

返回字符测量字符串str的长度。一个多字节字符算作一个字符。这意味着,对于包含五个二字节字符,length()返回10,而CHAR_LENGTH一个字符串()返回5。

SQL> SELECT CHAR_LENGTH("text");
+---------------------------------------------------------+
| CHAR_LENGTH("text")                                     |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHARACTER_LENGTH(STR)

CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。

CONCAT(STR1,STR2,...)

返回从串联参数产生的字符串。可能有一个或多个参数。如果所有参数都是非二进制字符串,结果是一个非二进制串。如果参数包括任何二进制串,结果是一个二进制串。一个数字参数被转换为等值的二进制字符串的形式; 如果要避免这种情况,你可以使用显式类型转换,如下面的例子:

SQL> SELECT CONCAT('My', 'S', 'QL');
+---------------------------------------------------------+
| CONCAT('My', 'S', 'QL')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONCAT_WS(分离器,STR1,STR2,...)

CONCAT_WS()表示连接具有分离器和CONCAT是一种特殊形式的()。第一个参数是的参数剩下的分隔符。分离器要连接的串之间加入。分隔符可以是一个字符串,如可以的参数的其余部分。如果隔板是NULL,则结果为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)

CONV(N,from_base,to_base)

不同数量的碱基间转换数字。返回数N的字符串表示,从from_base基转换为to_base。返回NULL如果任何参数是NULL。参数N被解释为一个整数,但也可以指定为一个整数或字符串。最小基本为2和最大碱是36。如果to_base是一个负数,N被看作一个带符号的数。否则,N被当作无符号。CONV()可与64位精度。

SQL> SELECT CONV('a',16,2);
+---------------------------------------------------------+
| CONV('a',16,2)                                          |
+---------------------------------------------------------+
| 1010                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ELT(N,STR1,STR2,STR3,...)

返回STR1如果N = 1,STR2如果N = 2,等等。,则返回null N大于参数的数目大于小于1或。ELT()是FIELD的补()。

SQL> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| ELT(1, 'ej', 'Heja', 'hej', 'foo')                      |
+---------------------------------------------------------+
| ej                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXPORT_SET(位,开,关[,分隔符[,NUMBER_OF_BITS]])

返回这样的字符串,每一点的价值位设置,你会得到一个关于字符串,并在值未设定每一位,你会得到一个关闭的字符串。在比特位被从右到左(从低阶到高阶比特)审查。字符串被添加到结果从左至右,由分离字符串分开(默认为逗号字符。,)。检查位的数目是由NUMBER_OF_BITS(默认为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)

FIELD(STR,STR1,STR2,STR3,...)

返回其中str1,STR2,STR3,...名单海峡指数(位置从1开始)。如果找不到海峡则返回0。

SQL> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')          |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FIND_IN_SET(STR,strlist)

如果字符串str是在由N-串的字符串列表strlist返回的1到N的范围内的值。

SQL> SELECT FIND_IN_SET('b','a,b,c,d');
+---------------------------------------------------------+
| SELECT FIND_IN_SET('b','a,b,c,d')                       |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FORMAT(X,D)

格式数X像'#,###,###。##',格式四舍五入至小数点后D位,而返回结果为一个字符串。如果D为0,结果没有小数点或小数部分。

SQL> SELECT FORMAT(12332.123456, 4);
+---------------------------------------------------------+
| FORMAT(12332.123456, 4)                                 |
+---------------------------------------------------------+
| 12,332.1235                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HEX(N_or_S)

如果N_or_S是一个数字,返回N,其中N是一个longlong(BIGINT)数字的十六进制值的字符串表示。这相当于CONV(N,10,16)。

如果N_or_S是一个字符串,返回N_or_S其中N_or_S每个字符转换为两个十六进制数字的十六进制字符串表示。

SQL> SELECT HEX(255);
+---------------------------------------------------------+
| HEX(255)                                                |
+---------------------------------------------------------+
| FF                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT 0x616263;
+---------------------------------------------------------+
| 0x616263                                                |
+---------------------------------------------------------+
| abc                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

INSERT(STR,POS,LEN,中newstr)

返回字符串str,在位置POS和len字符长的字符串替换中newstr开头的字符串。如果pos不是字符串的长度内返回原始字符串。取代从位置pos串的其余部分如果len不串的其余部分的长度范围内。返回NULL如果任何参数是NULL。

SQL> SELECT INSERT('Quadratic', 3, 4, 'What');
+---------------------------------------------------------+
| INSERT('Quadratic', 3, 4, 'What')                       |
+---------------------------------------------------------+
| QuWhattic                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

INSTR(STR,SUBSTR)

返回字符串str子串SUBSTR中第一次出现的位置。这是一样的本地(两个参数的形式),除此以外,参数的顺序是相反的。

SQL> SELECT INSTR('foobarbar', 'bar');
+---------------------------------------------------------+
| INSTR('foobarbar', 'bar')                               |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LCASE(STR)

LCASE()是较低的()的同义词。

LEFT(STR,LEN)

如果任何参数是NULL,返回从字符串str,或NULL最左边的len个字符。

SQL> SELECT LEFT('foobarbar', 5);
+---------------------------------------------------------+
| LEFT('foobarbar', 5)                                    |
+---------------------------------------------------------+
| fooba                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

长度(STR)

返回字符串str的长度,以字节为单位。一个多字节字符算作多字节。这意味着,对于包含五个二字节字符,length()返回10,而CHAR_LENGTH一个字符串()返回5。

SQL> SELECT LENGTH('text');
+---------------------------------------------------------+
| LENGTH('text')                                          |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOAD_FILE(FILE_NAME)

读取该文件,作为一个字符串返回文件内容。要使用此功能,该文件必须位于服务器主机上,则必须指定完整路径的文件,你必须有FILE权限。该文件必须由所有它的尺寸小于max_allowed_pa​​cket个字节可读。

如果该文件不存在或无法读取,因为上述条件之一不满足,则函数返回NULL。

由于SQL 5.0.19,即给定为文字字符串文件名的character_set_filesystem系统变量控制的解释。

SQL> UPDATE table_test
    -> SET blob_col=LOAD_FILE('/tmp/picture')
	-> WHERE id=1;
...........................................................

LOCATE(SUBSTR,STR),本地(SUBSTR,STR,POS)

第一种语法返回字符串str子串SUBSTR中第一次出现的位置。第二个语法返回字符串str子串SUBSTR位置pos处开始第一次出现的位置。如果SUBSTR不是str中,则返回0。

SQL> SELECT LOCATE('bar', 'foobarbar');
+---------------------------------------------------------+
| LOCATE('bar', 'foobarbar')                              |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOWER(STR)

返回改为根据当前字符集映射到小写字母的字符串str。

SQL> SELECT LOWER('QUADRATICALLY');
+---------------------------------------------------------+
| LOWER('QUADRATICALLY')                                  |
+---------------------------------------------------------+
| quadratically                                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LPAD(STR,LEN,padstr填补)

返回字符串str,左填充用字符串padstr填补到len字符长度。如果str的长度大于len,则返回值被缩短至len个字符。

SQL> SELECT LPAD('hi',4,'??');
+---------------------------------------------------------+
| LPAD('hi',4,'??')                                       |
+---------------------------------------------------------+
| ??hi                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LTRIM(STR)

返回删除了前导空格字符的字符串str。

SQL> SELECT LTRIM('  barbar');
+---------------------------------------------------------+
| LTRIM('  barbar')                                       |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKE_SET(位,STR1,STR2,...)

返回一组值(含分隔子字符串,个字符),包括那些在设置位的相应位的字符串。STR1对应于位0,STR2到第1位,依此类推。str1中,str2的NULL值,......不添加到结果。

SQL> SELECT MAKE_SET(1,'a','b','c');
+---------------------------------------------------------+
| MAKE_SET(1,'a','b','c')                                 |
+---------------------------------------------------------+
| a                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MID(STR,POS,LEN)

MID(STR,POS,LEN)是SUBSTRING的同义词(STR,POS,LEN)。

OCT(N)

返回N,其中N是一个longlong(BIGINT)数字八进制值的字符串表示。这相当于CONV(N,10,8)。,则返回null N为NULL。

SQL> SELECT OCT(12);
+---------------------------------------------------------+
| OCT(12)                                                 |
+---------------------------------------------------------+
| 14                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

OCTET_LENGTH(STR)

OCTET_LENGTH()是LENGTH()的同义词。

ORD(STR)

如果字符串str的最左边的字符是一个多字节字符,返回该字符,使用此公式其组成字节的数值计算的代码:

  (1st byte code)
+ (2nd byte code . 256)
+ (3rd byte code . 2562) ...

如果最左边的字符不是一个多字节字符,ORD()返回相同的值作为ASCII()函数。

SQL> SELECT ORD('2');
+---------------------------------------------------------+
| ORD('2')                                                |
+---------------------------------------------------------+
| 50                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

POSITION(SUBSTR IN STR)

POSITION(SUBSTR str中)可以找到同义词(SUBSTR,STR)。

QUOTE(STR)

引号的字符串,以产生可以用作SQL语句中正确转义数据值的结果。该字符串返回单引号和单引号('),反斜线('\'),ASCII NUL和Control-Z前面有反斜杠的每个实例封闭。如果参数为NULL,则返回值是不封闭单引号的单词“NULL”。

SQL> SELECT QUOTE('Don\'t!');
+---------------------------------------------------------+
| QUOTE('Don\'t!')                                        |
+---------------------------------------------------------+
| 'Don\'t!'                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

注:请检查您的安装有任何错误使用此功能,那么不要使用此功能。

EXPR正则表达式模式

这个函数执行对图案expr的模式匹配。返回1如果expr匹配pat; 否则返回0。如果expr或拍拍为NULL,则结果为NULL。REGEXP不区分大小写,与二进制字符串使用时除外。

SQL> SELECT 'ABCDEF' REGEXP 'A%C%%';
+---------------------------------------------------------+
| 'ABCDEF' REGEXP 'A%C%%'                                 |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

另一个例子是:

SQL> SELECT 'ABCDE' REGEXP '.*';
+---------------------------------------------------------+
|  'ABCDE' REGEXP '.*'                                    |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

让我们看一个例子:

SQL> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------------------------+
| 'new*\n*line' REGEXP 'new\\*.\\*line'                   |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

重复序列(STR,计数)

返回由字符串str重复的次数的字符串。如果计数小于1,返回一个空字符串。如果str或计数为NULL,则返回NULL。

SQL> SELECT REPEAT('SQL', 3);
+---------------------------------------------------------+
| REPEAT('SQL', 3)                                      |
+---------------------------------------------------------+
| SQLSQLSQL                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

REPLACE(STR,from_str均被,to_str)

返回与字符串的所有出现由字符串to_str from_str均被替换字符串str。REPLACE()的from_str均被搜索时进行区分大小写的匹配。

SQL> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
+---------------------------------------------------------+
| REPLACE('www.mysql.com', 'w', 'Ww')                     |
+---------------------------------------------------------+
| WwWwWw.mysql.com                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

REVERSE(STR)

返回并反转字符顺序的字符串str。

SQL> SELECT REVERSE('abcd');
+---------------------------------------------------------+
| REVERSE('abcd')                                         |
+---------------------------------------------------------+
| dcba                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RIGHT(STR,LEN)

如果任何参数是NULL,返回从字符串str,或NULL最右边的len个字符。

SQL> SELECT RIGHT('foobarbar', 4);
+---------------------------------------------------------+
| RIGHT('foobarbar', 4)                                   |
+---------------------------------------------------------+
| rbar                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RPAD(STR,LEN,padstr填补)

返回字符串str,右侧填充字符串padstr填补到len字符长度。如果str的长度大于len,则返回值被缩短至len个字符。

SQL> SELECT RPAD('hi',5,'?');
+---------------------------------------------------------+
| RPAD('hi',5,'?')                                        |
+---------------------------------------------------------+
| hi???                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RTRIM(STR)

返回尾随去掉空格字符的字符串str。

SQL> SELECT RTRIM('barbar   ');
+---------------------------------------------------------+
| RTRIM('barbar   ')                                      |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SOUNDEX(STR)

返回从STR一个同音字符串。两个字符串听起来差不多了应该有相同的同音字符串。一个标准的soundex字符串是四个字符长,但SOUNDEX()函数返回一个任意长的字符串。您可以使用SUBSTRING()的结果得到一个标准的同音字符串。在str中所有非字母字符将被忽略。在AZ范围之外的所有国际字母符号被视为元音字母。

SQL> SELECT SOUNDEX('Hello');
+---------------------------------------------------------+
| SOUNDEX('Hello')                                        |
+---------------------------------------------------------+
| H400                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

表达式1听起来像表达式2

这是相同的SOUNDEX(表达式1)= SOUNDEX(表达式2)。

SPACE(N)

返回由N空格字符的字符串。

SQL> SELECT SPACE(6);
+---------------------------------------------------------+
| SELECT SPACE(6)                                         |
+---------------------------------------------------------+
| '      '                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STRCMP(STR1,STR2)

比较两个字符串,返回0,如果这两个字符串相等,则返回-1,如果第一个参数是根据当前的排序顺序,否则,返回1小于第二个。

SQL> SELECT STRCMP('MOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'MOHD')                                  |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

另一个例子是:

SQL> SELECT STRCMP('AMOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('AMOHD', 'MOHD')                                 |
+---------------------------------------------------------+
| -1                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

让我们看一个例子:

SQL> SELECT STRCMP('MOHD', 'AMOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'AMOHD')                                 |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBSTRING(STR,POS)

SUBSTRING(STR FROM POS)

SUBSTRING(STR,POS,LEN)

SUBSTRING(STR FROM销售点LEN)

没有len参数的格式从字符串str位置pos处开始返回一个字符串。用len参数的格式从字符串str长返回一个字符串len个字符,从位置pos开始。从使用的形式是标准的SQL语法。另外,也可以用于POS负值。在这种情况下,串的开始是从字符串的末尾,而不是一开始POS字符。负值可以被用于在任何的该函数的形式POS。

SQL> SELECT SUBSTRING('Quadratically',5);
+---------------------------------------------------------+
| SSUBSTRING('Quadratically',5)                           |
+---------------------------------------------------------+
| ratically                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT SUBSTRING('foobarbar' FROM 4);
+---------------------------------------------------------+
| SUBSTRING('foobarbar' FROM 4)                           |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT SUBSTRING('Quadratically',5,6);
+---------------------------------------------------------+
| SUBSTRING('Quadratically',5,6)                          |
+---------------------------------------------------------+
| ratica                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBSTRING_INDEX(STR,DELIM,计数)

返回从字符串str分隔符delim中的计数发生前的子字符串。如果计数是正的,则返回一切最终定界符(从左边算起)的左侧。如果count是负数,则返回一切最终定界符(从右边开始计数)的权利。SUBSTRING_INDEX()为DELIM搜索时进行区分大小写的匹配。

SQL> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
+---------------------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '.', 2)                |
+---------------------------------------------------------+
| www.mysql                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TRIM([{BOTH |领导| TRAILING} [remstr] FROM] STR)

TRIM([remstr FROM] STR)

返回删除了所有remstr前缀或后缀字符串str。如果两个,领导,或尾随给出没有说明符,则假定BOTH。remstr为可任选的,并且如果未指定,空格被删除。

SQL> SELECT TRIM('  bar   ');
+---------------------------------------------------------+
| TRIM('  bar   ')                                        |
+---------------------------------------------------------+
| bar                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxbarxxx')                      |
+---------------------------------------------------------+
| barxxx                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(BOTH 'x' FROM 'xxxbarxxx')                         |
+---------------------------------------------------------+
| bar                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
+---------------------------------------------------------+
| TRIM(TRAILING 'xyz' FROM 'barxxyz')                     |
+---------------------------------------------------------+
| barx                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UCASE(STR)

UCASE()是UPPER()的同义词。

UNHEX(STR)

执行HEX(STR)的逆运算。也就是说,它解释每对十六进制数字的参数作为数字,并将其转换到由数字表示的字符。所得字符被返回为二进制字符串。

SQL> SELECT UNHEX('4D7953514C');
+---------------------------------------------------------+
| UNHEX('4D7953514C')                                     |
+---------------------------------------------------------+
| SQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

在参数字符串中的字符必须是合法的十六进制数字:'0'..'9','A'..'F','一'..'F'。如果UNHEX()遇到在参数任何非十六进制数字,它返回NULL。

UPPER(STR)

返回改为根据当前字符集映射为大写的所有字符的字符串str。

SQL> SELECT UPPER('Allah-hus-samad');
+---------------------------------------------------------+
| UPPER('Allah-hus-samad')                                |
+---------------------------------------------------------+
| ALLAH-HUS-SAMAD                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

发表评论

© 2021 狸玖技术站 - 基于 WordPress