历史版本。 PostgreSQL 6.5 已结束支持。 请参阅 当前版本手册.
5.3. 字符串函数
SQL92 用特定语法定义了一些字符串函数。其中一些使用其他 Postgres 函数实现。SQL92 支持的字符串类型是
char、varchar 和
text。
表 5.3. SQL92 字符串函数
| 函数 | 返回 | 描述 | 例子 |
|---|---|---|---|
| char_length(string) | int4 | 字符串的长度 | char_length('jose') |
| character_length(string) | int4 | 字符串的长度 | char_length('jose') |
| lower(string) | string | 把字符串转换为小写 | lower('TOM') |
| octet_length(string) | int4 | 字符串的存储长度 | octet_length('jose') |
| position(string in string) | int4 | 指定子串的位置 | position('o' in 'Tom') |
| substring(string [from int] [for int]) | string | 提取指定子串 | substring('Tom' from 2 for 2) |
| trim([leading|trailing|both] [string] from string) | string | 移除字符串两侧的字符 | trim(both 'x' from 'xTomx') |
| upper(text) | text | 把文本转换为大写 | upper('tom') |
text、varchar() 和 char() 类型还有许多其他的字符串函数可用。其中一些在内部用于实现上面列出的 SQL92 字符串函数。
表 5.4. 字符串函数
| 函数 | 返回 | 描述 | 例子 |
|---|---|---|---|
| char(text) | char | 把 text 转换为 char 类型 | char('text string') |
| char(varchar) | char | 把 varchar 转换为 char 类型 | char(varchar 'varchar string') |
| initcap(text) | text | 把每个单词的首字母转换为大写 | initcap('thomas') |
| lpad(text,int,text) | text | 在左侧填充字符串到指定长度 | lpad('hi',4,'??') |
| ltrim(text,text) | text | 移除文本左侧的字符 | ltrim('xxxxtrim','x') |
| textpos(text,text) | text | 定位指定子串 | position('high','ig') |
| rpad(text,int,text) | text | 在右侧填充字符串到指定长度 | rpad('hi',4,'x') |
| rtrim(text,text) | text | 移除文本右侧的字符 | rtrim('trimxxxx','x') |
| substr(text,int[,int]) | text | 提取指定子串 | substr('hi there',3,5) |
| text(char) | text | 把 char 转换为 text 类型 | text('char string') |
| text(varchar) | text | 把 varchar 转换为 text 类型 | text(varchar 'varchar string') |
| translate(text,from,to) | text | 转换字符串中的字符 | translate('12345', '1', 'a') |
| varchar(char) | varchar | 把 char 转换为 varchar 类型 | varchar('char string') |
| varchar(text) | varchar | 把 text 转换为 varchar 类型 | varchar('text string') |
显式为 text 定义的函数大多数也适用于 char() 和 varchar() 参数。