ascii(
string
)
参数中第一个字符的
ASCII
编码值。
对于
UTF8
返回字符的宽字节编码值。
对于其它的多字节编码,参数必须是一个
ASCII
字符。
|
ascii('x')
|
120
|
btrim(
string
text
[
,
characters
text
])
从
string
开头和结尾删除只包含
characters
中字符(缺省是空白)的最长字符串。
|
btrim('xyxtrimyyx', 'xy')
|
trim
|
chr(
int
)
给定编码的字符。对于
UTF8
这个参数作为宽字节代码处理。
对于其它的多字节编码,这个参数必须指定一个
ASCII
字符,
因为text数据类型无法存储NULL数据字节,不能将NULL(0)作为字符参数。
|
chr(65)
|
A
|
concat(
str
"any"
[,
str
"any"
[, ...] ])
连接所有参数的文本表示。NULL 参数被忽略。
|
concat('abcde', 2, NULL, 22)
|
abcde222
|
concat_ws(
sep
text
,
str
"any"
[,
str
"any"
[, ...] ])
连接所有参数,但是第一个参数是分隔符,用于将所有参数分隔。NULL 参数被忽略。
|
concat_ws(',', 'abcde', 2, NULL, 22)
|
abcde,2,22
|
convert(
string
bytea
,
src_encoding
name
,
dest_encoding
name
)
|
bytea
|
把原来编码为
src_encoding
的字符串转换为
dest_encoding
编码。
在这种编码格式中
string
必须是有效的。
用
CREATE CONVERSION
定义转换。
这也有些预定义的转换。 参阅
表 9-7
显示可用的转换。
|
convert('text_in_utf8', 'UTF8', 'LATIN1')
|
text_in_utf8
用 Latin-1
编码表示 (ISO 8859-1)
|
convert_from(
string
bytea
,
src_encoding
name
)
把原来编码为
src_encoding
的字符串转换为数据库编码格式。
这种编码格式中,
string
必须是有效的。
|
convert_from('text_in_utf8', 'UTF8')
|
text_in_utf8
用当前数据库编码表示
|
convert_to(
string
text
,
dest_encoding
name
)
|
bytea
|
将字符串转化为
dest_encoding
编码格式。
|
convert_to('some text', 'UTF8')
|
some text
用 UTF8 编码表示
|
decode(
string
text
,
format
text
)
|
bytea
|
把用
string
表示的文本里面的二进制数据解码。
format
选项和
encode
相同。
|
decode('MTIzAAE=', 'base64')
|
\x3132330001
|
encode(
data
bytea
,
format
text
)
把二进制数据编码为文本表示。支持的格式有:
base64
,
hex
,
escape
。
escape
转换零字节和高位设置字节为八进制序列(
\
nnn
)
和双反斜杠。
|
encode(E'123\\000\\001', 'base64')
|
MTIzAAE=
|
format
(
formatstr
text
[,
formatarg
"any"
[, ...] ])
根据格式字符串格式参数。这个函数类似C函数
sprintf
。
参阅
第 9.4.1 节
。
|
format('Hello %s, %1$s', 'World')
|
Hello World, World
|
initcap(
string
)
把每个单词的第一个字母转为大写,其它的保留小写。
单词是一系列字母数字组成的字符,用非字母数字分隔。
|
initcap('hi THOMAS')
|
Hi Thomas
|
left(
str
text
,
n
int
)
返回字符串的前
n
个字符。当
n
是负数时,
返回除最后|
n
|个字符以外的所有字符。
|
left('abcde', 2)
|
ab
|
length(
string
)
string
中字符的数目
|
length('jose')
|
4
|
length(
string
bytea
,
encoding
name
)
|
int
|
指定
encoding
编码格式的
string
的字符数。
在这个编码格式中,
string
必须是有效的。
|
length('jose', 'UTF8')
|
4
|
lpad(
string
text
,
length
int
[
,
fill
text
])
通过填充字符
fill
(缺省时为空白),
把
string
填充为
length
长度。
如果
string
已经比
length
长则将其尾部截断。
|
lpad('hi', 5, 'xy')
|
xyxhi
|
ltrim(
string
text
[
,
characters
text
])
从字符串
string
的开头删除只包含
characters
中字符(缺省是一个空白)的最长的字符串。
|
ltrim('zzzytrim', 'xyz')
|
trim
|
md5(
string
)
计算
string
的MD5散列,以十六进制返回结果。
|
md5('abc')
|
900150983cd24fb0 d6963f7d28e17f72
|
pg_client_encoding()
当前客户端编码名称
|
pg_client_encoding()
|
SQL_ASCII
|
quote_ident(
string
text
)
返回适用于
SQL
语句的标识符形式(使用适当的引号进行界定)。
只有在必要的时候才会添加引号(字符串包含非标识符字符或者会转换大小写的字符)。
嵌入的引号被恰当地写了双份。又见
例 40-1
。
|
quote_ident('Foo bar')
|
"Foo bar"
|
quote_literal(
string
text
)
返回适用于在
SQL
语句里当作文本使用的形式(使用适当的引号进行界定)。
嵌入的引号和反斜杠被恰当地写了双份。请注意,当输入是null时,
quote_literal
返回null;如果参数可能为null,
通常
quote_nullable
更适用。
又见
例 40-1
。
|
quote_literal(E'O\'Reilly')
|
'O''Reilly'
|
quote_literal(
value
anyelement
)
|
text
|
将给定的值强制转换为text,加上引号作为文本。嵌入的引号和反斜杠被恰当地写了双份。
|
quote_literal(42.5)
|
'42.5'
|
quote_nullable(
string
text
)
返回适用于在
SQL
语句里当作字符串使用的形式(使用适当的引号进行界定)。
或者,如果参数为空,返回
NULL
。嵌入的引号和反斜杠被恰当地写了双份。
又见
例 40-1
。
|
quote_nullable(NULL)
|
NULL
|
quote_nullable(
value
anyelement
)
|
text
|
将给定的参数值转化为text,加上引号作为文本;或者,如果参数为空,
返回
NULL
。嵌入的引号和反斜杠被恰当地写了双份。
|
quote_nullable(42.5)
|
'42.5'
|
regexp_matches(
string
text
,
pattern
text
[,
flags
text
])
|
setof text[]
|
返回
string
中所有匹配POSIX正则表达式的子字符串。
参阅
第 9.7.3 节
获得更多信息。
|
regexp_matches('foobarbequebaz', '(bar)(beque)')
|
{bar,beque}
|
regexp_replace(
string
text
,
pattern
text
,
replacement
text
[,
flags
text
])
替换匹配 POSIX 正则表达式的子字符串。参见
第 9.7.3 节
以获取更多模式匹配的信息。
|
regexp_replace('Thomas', '.[mN]a.', 'M')
|
ThM
|
regexp_split_to_array(
string
text
,
pattern
text
[,
flags
text
])
|
text[]
|
用POSIX正则表达式作为分隔符,分隔
string
。
参阅
第 9.7.3 节
以获取更多模式匹配的信息。
|
regexp_split_to_array('hello world', E'\\s+')
|
{hello,world}
|
regexp_split_to_table(
string
text
,
pattern
text
[,
flags
text
])
|
setof text
|
用POSIX正则表达式作为分隔符,分隔
string
。
参阅
第 9.7.3 节
以获取更多模式匹配的信息。
|
regexp_split_to_table('hello world', E'\\s+')
|
hello
world
(2 rows)
|
repeat(
string
text
,
number
int
)
|
text
|
将
string
重复
number
次
|
repeat('Pg', 4)
|
PgPgPgPg
|
replace(
string
text
,
from
text
,
to
text
)
把字符串
string
里出现地所有子字符串
from
替换成子字符串
to
|
replace('abcdefabcdef', 'cd', 'XX')
|
abXXefabXXef
|
reverse(
str
)
返回颠倒的字符串
|
reverse('abcde')
|
edcba
|
right(
str
text
,
n
int
)
返回字符串中的后
n
个字符。当
n
是负值时,
返回除前|
n
|个字符以外的所有字符。
|
right('abcde', 2)
|
de
|
rpad(
string
text
,
length
int
[
,
fill
text
])
使用填充字符
fill
(缺省时为空白),
把
string
填充到
length
长度。
如果
string
已经比
length
长则将其从尾部截断。
|
rpad('hi', 5, 'xy')
|
hixyx
|
rtrim(
string
text
[
,
characters
text
])
从字符串
string
的结尾删除只包含
characters
中字符(缺省是个空白)的最长的字符串。
|
rtrim('trimxxxx', 'x')
|
trim
|
split_part(
string
text
,
delimiter
text
,
field
int
)
根据
delimiter
分隔
string
返回生成的第 field 个子字符串(1为基)。
|
split_part('abc~@~def~@~ghi', '~@~', 2)
|
def
|
strpos(
string
,
substring
)
指定的子字符串的位置。和
position(
substring
in
string
)
一样,不过参数顺序相反。
|
strpos('high', 'ig')
|
2
|
substr(
string
,
from
[
,
count
])
抽取子字符串。和
substring(
string
from
from
for
count
)
)一样
|
substr('alphabet', 3, 2)
|
ph
|
to_ascii(
string
text
[
,
encoding
text
])
把
string
从其它编码转换为
ASCII
(仅支持
LATIN1
,
LATIN2
,
LATIN9
,
WIN1250
编码)。
|
to_ascii('Karel')
|
Karel
|
to_hex(
number
int
or
bigint
)
把
number
转换成十六进制表现形式
|
to_hex(2147483647)
|
7fffffff
|
translate(
string
text
,
from
text
,
to
text
)
把在
string
中包含的任何匹配
from
中字符的字符转化为对应的在
to
中的字符。
如果
from
比
to
长,
删掉在
from
中出现的额外的字符。
|
translate('12345', '143', 'ax')
|
a2x5
|