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_packet个字节可读。
如果该文件不存在或无法读取,因为上述条件之一不满足,则函数返回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)
更多建议: