历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.
10.2. 字符串函数
SQL92 用特定语法定义了一些字符串函数。其中一些使用其他 Postgres 函数实现。
表 10.2. SQL92 字符串函数
| 函数 | 返回 | 描述 | 例子 |
|---|---|---|---|
| position(text in text) | int4 | 指定子串的位置 | position('o' in 'Tom') |
| substring(text [from int] [for int]) | text | 提取指定子串 | substring('Tom' from 2 for 2) |
| trim([leading|trailing|both] [text] from text) | text | 移除文本两侧的字符 | trim(both 'x' from 'xTomx') |
text、varchar() 和 char() 类型有许多可用的字符串函数。其中一些在内部用于实现上面列出的 SQL92 字符串函数。
表 10.3. 字符串函数
| 函数 | 返回 | 描述 | 例子 |
|---|---|---|---|
| char(text) | char | 把 text 转换为 char 类型 | char('text string') |
| char(varchar) | char | 把 varchar 转换为 char 类型 | char(varchar 'varchar string') |
| initcap(text) | text | 把每个单词的首字母转换为大写 | initcap('thomas') |
| lower(text) | text | 把文本转换为小写 | lower('TOM') |
| lpad(text,int,text) | text | 在左侧填充字符串到指定长度 | lpad('hi',4,'??') |
| ltrim(text,text) | text | 移除文本左侧的字符 | ltrim('xxxxtrim','x') |
| position(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') |
| upper(text) | text | 把文本转换为大写 | upper('tom') |
显式为 text 定义的函数大多数也适用于 char() 和 varchar() 参数。