首批通过分布式安全可靠测评,为关键业务系统打造
字符串函数
更新时间:2026-04-14 17:41:09
本节介绍字符串函数中各个函数的使用示例。
说明
本文给出的为字符串函数的推荐用法,建议您按照本文中的用法进行使用。
本文示例均是假设数据库中存在表
t1,并且t1表中c1列为分区键。
SUBSTR/SUBSTRING
SUBSTR 和 SUBSTRING 函数的作用均是从字符串中提取子串,此处以 SUBSTR 为例介绍如何使用,目前支持如下用法:
substr(str, pos)
str:将要被提取子串的原始字符串。
pos:开始提取子串的位置索引。
substr(str, pos, len)
str:将要被提取子串的原始字符串。
pos:开始提取子串的位置索引。
len:要返回的子串的字符数。
暂不支持 substr(str from pos) 或 substr(str from pos for len) 用法。
SUBSTR 函数的使用示例如下:
从表
t1中选取所有c1列值为字符lo的行,ODP 可以将该 SQL 请求准确路由select * from t1 where c1=substr('hello',4);从表 t1 中选取所有
c1列值为hel的行,ODP 可以将该 SQL 请求准确路由select * from t1 where c1=substr('hello',1,3);
TO_CHAR
TO_CHAR 函数作用是将 datetime 类型数据转为 char 类型,目前仅支持 to_char (datetime, [fmt]) 用法,并且第一个参数需为 date 或 timestamp 类型,
查询 t1 表中所有 c1 列值与当前日期(以 'YYYY/MM/DD' 格式显示)相等的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1=to_char(sysdate,'YYYY/MM/DD');
LOWER/LCASE
LOWER 和 LCASE 函数的作用均是将字符转为小写格式,此处以 LOWER 为例介绍如何使用函数,目前支持 lower(str) 用法。
从表 t1 中选取所有 c1 列值为 aaaa 的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1=lower('aAAA');
UPPER/UCASE
UPPER 和 UCASE 函数的作用均是将字符转为大写格式,此处以 UPPER 为例介绍如何使用函数,目前支持 upper(str) 用法。
从表 t1 中选取所有 c1 列值为 ASSDS 的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1=upper('ASsds');
TRIM
TRIM 函数的作用是移除字符串两侧(或指定一侧)的指定字符,默认情况下是去除空格。目前支持如下用法:
trim ([BOTH| LEADING | TRAILING] remove_str FROM str)
BOTH:可选项,表示移除字符串两侧的指定字符。
LEADING:可选项,表示仅移除字符串左侧的指定字符。
TRAILING:可选项,表示仅移除字符串右侧的指定字符。
remove_str:想要从原始字符串
str中移除的指定字符,Oracle 模式下该选项的大小为一个字符。str:将要被移除
remove_str字符的原始字符串。
trim(remove_str from str)
remove_str:想要从原始字符串
str中移除的指定字符,Oracle 模式下该选项的大小为一个字符。str:将要被移除
remove_str字符的原始字符串
trim(str)
从表 t1 中选取所有 c1 列值为 #你好_#_# 的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1=trim('_' from '_#你好_#_#');
LTRIM
LTRIM 函数的作用是移除字符串左侧的指定字符,默认情况下是去除空格。根据租户的模式不同分为如下两种用法:
MySQL 模式:ltrim(str)
Oracle 模式:ltrim(str,[set])
str:待移除指定字符的字符串。
set:可选项,用于设置待移除的指定字符。
查询 t1 表中 c1 列值与 ltrim(' 123'),也就是字符串 123 相等的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1= ltrim(' 123');
RTRIM
RTRIM 函数的作用是移除字符串右侧的指定字符,默认情况下是去除空格。根据租户的模式不同分为如下两种用法:
MySQL 模式:rtrim(str)
Oracle 模式:rtrim(str,[set])
str:待移除指定字符的字符串。set:可选项,用于设置待移除的指定字符。
查询 t1 表中 c1 列值与 rtrim('你好a_***#__','_*#'),也就是字符串 你好a 相等的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1= rtrim('你好a_***#__','_*#');
CONCAT
CONCAT 函数的作用是将一个或多个字符串连接成一个新的单一字符串,支持 concat(string1, string2, ..., stringN) 用法。
从表 t1 中选取所有 c1 列值为 concat('a','b'),也就是 ab 的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1 = concat('a','b');
REPLACE
REPLACE 函数的作用是将字符串中的某个子串替换为另一个子串,支持 replace(str, from_str,to_str) 用法:
str:待操作的字符串,将在这个字符串中进行查找和替换操作。
from_str:字符串中待替换的子串,如果这个子串出现在
str中,则会被to_str替换。to_str:用来替换
from_str的新子串。
从表 t1 中选取所有 c1 列值为 heLLo 的行,ODP 可以将该 SQL 请求准确路由。示例如下:
select * from t1 where c1=replace('hello','l','L');
LENGTH
LENGTH 函数的作用是计算字符串的长度,支持 length(str) 用法。
查询 t1 表中 c1 列值与 length('hello'),也就是 5 相等的行,示例如下:
select * from t1 where c1=length('hello');