| 语法 | 相当于 | 描述 |
|---|---|---|
AT TIME ZONE | timezone() | 时区 |
CURRENT_CATALOG | current_catalog() | 现在使用的catalog |
COLLATION FOR | pg_collation_for() | 排序 |
CURRENT_DATE | current_date() | 现在的日期(年,月,日) |
CURRENT_ROLE | current_user() | 现在的用户 |
CURRENT_SCHEMA | current_schema() | 现在使用的schema |
CURRENT_TIMESTAMP | current_timestamp() | 现在的时间戳 |
CURRENT_USER | current_user() | 现在的用户 |
EXTRACT(<part> FROM <value>) | extract("<part>", <value>) | 从..中抽取部分内容 |
OVERLAY(<text1> PLACING <text2> FROM <int1> FOR <int2>) | overlay(<text1>, <text2>, <int1>, <int2>) | 替换 |
OVERLAY(<text1> PLACING <text2> FROM <int>) | overlay(<text1>, <text2>, <int>) | 替换 |
SESSION_USER | current_user() | session用户 |
SUBSTRING(<text> FOR <int1> FROM <int2>)) | substring(<text>, <int2>, <int1>) | 截取 |
SUBSTRING(<text> FOR <int>) | substring(<text>, 1, <int>)) | |
SUBSTRING(<text> FROM <int1> FOR <int2>) | substring(<text>, <int1>, <int2>) | |
SUBSTRING(<text> FROM <int>) | substring(<text>, <int>) | |
TRIM(<text1> FROM <text2>) | btrim(<text2>, <text1>) | 祛除字符或字符串。 |
TRIM(<text2>, <text1>) | btrim(<text2>, <text1>) | |
TRIM(FROM <text>) | btrim(<text>) | |
TRIM(LEADING <text1> FROM <text2>) | ltrim(<text2>, <text1>) | |
TRIM(LEADING FROM <text> ) | ltrim(<text>) | |
TRIM(TRAILING <text1> FROM <text2>) | rtrim(<text2>, <text1>) | |
TRIM(TRAILING FROM<text> ) | rtrim(<text>) | |
USER | current_user() | 查询使用用户 |
| 语法 | 描述 |
|---|---|
ANNOTATE_TYPE(...) | 显式输入表达式 |
ARRAY(...) | 子查询结果转换为数组 |
ARRAY[...] | 将标量表达式转换为数组 |
CAST(...) | 类型转换 |
COALESCE(...) | 第一个非NULL短路表达式 |
EXISTS(...) | 子查询结果的存在性检验 |
| IF(...) | 条件评估 |
IFNULL(...) | COALESCE限制为两个操作数的别名 |
NULLIF(...) | NULL有条件地返回 |
ROW(...) | 元组构造函数 |
语法:
ANNOTATE_TYPE()
<expr>:::<type>
ANNOTATE_TYPE(<expr>, <type>)计算给定的表达式,要求表达式具有给定的类型。如果表达式没有给定的类型,则返回错误。
类型注释对于指导数值的算术特别有用。
例如:
SELECT (1 / 0):::FLOAT;
pq: division by zero句法:
ARRAY( ... subquery ... )计算子查询并将其结果转换为数组。任何选择查询都可以用作子查询。
语法:
ARRAY[ <expr>, <expr>, ... ]评估为包含指定值的数组。
例如:
SELECT ARRAY[1,2,3] AS a;
+---------+
| a |
+---------+
| {1,2,3} |
+---------+语法:
<expr> :: <type>
CAST (<expr> AS <type>)计算表达式并将结果值转换为指定的类型。如果转换无效,将报告错误。
例如:
CAST(now() AS DATE)语法:
<expr> COLLATE <collation>计算表达式并将其结果转换为具有指定归类的归类字符串。
例如:
'a' COLLATE de语法:
EXISTS ( ... subquery ... )
NOT EXISTS ( ... subquery ... )评估子查询,然后返回TRUE或FALSE取决于子查询是否返回任何行(用于EXISTS)或不返回任何行(用于NOT EXISTS)。任何选择查询 都可以用作子查询。
语法:
NULLIF ( <expr1>, <expr2> )相当于:IF ( <expr1> = <expr2>, NULL, <expr1> )
语法:
IFNULL ( <expr1>, <expr2> )
COALESCE ( <expr1> [, <expr2> [, <expr3> ] ...] )COALESCE首先计算第一个表达式。如果其值不是 NULL,则直接返回其值。否则,它将返回COALESCE对其余表达式应用的结果。如果所有表达式均为NULL,NULL则返回。
不评估第一个非空参数右边的参数。
IFNULL(a, b)等同于COALESCE(a, b)语法:
(<expr>, <expr>, ...)
ROW (<expr>, <expr>, ...)评估为包含提供的表达式值的元组。
例如:
SELECT ('x', 123, 12.3) AS a;
+----------------+
| a |
+----------------+
| ('x',123,12.3) |
+----------------+从值推断结果元组的数据类型。元组中的每个位置可以具有不同的数据类型。
| 函数 | 说明 | 返回值类型 |
|---|---|---|
array_append(array: bool[], elem: bool) | 将elem附加到数组中,返回结果。 | bool[] |
array_append(array: bytes[], elem: bytes) | 将elem附加到数组中,返回结果。 | bytes[] |
array_append(array: date[], elem: date) | 将elem附加到数组中,返回结果。 | date[] |
array_append(array: decimal[], elem: decimal) | 将elem附加到数组中,返回结果。 | decimal[] |
array_append(array: float[], elem: float) | 将elem附加到数组中,返回结果。 | float[] |
array_append(array: inet[], elem: inet) | 将elem附加到数组中,返回结果。 | inet[] |
array_append(array: int[], elem: int) | 将elem附加到数组中,返回结果。 | int[] |
array_append(array: interval[], elem: interval) | 将elem附加到数组中,返回结果。 | interval[] |
array_append(array: string[], elem: string) | 将elem附加到数组中,返回结果。 | string[] |
array_append(array: time[], elem: time) | 将elem附加到数组中,返回结果。 | time[] |
array_append(array: timestamp[], elem: timestamp) | 将elem附加到数组中,返回结果。 | timestamp[] |
array_append(array: timestamptz[], elem: timestamptz) | 将elem附加到数组中,返回结果。 | timestamptz[] |
array_append(array: uuid[], elem: uuid) | 将elem附加到数组中,返回结果。 | uuid[] |
array_append(array: varbit[], elem: varbit) | 将elem附加到数组中,返回结果。 | varbit[] |
array_cat(left: bool[], right: bool[]) | 追加两个数组。 | bool[] |
array_cat(left: bytes[], right: bytes[]) | 追加两个数组。 | bytes[] |
array_cat(left: date[], right: date[]) | 追加两个数组。 | date[] |
array_cat(left: decimal[], right: decimal[]) | 追加两个数组。 | decimal[] |
array_cat(left: float[], right: float[]) | 追加两个数组。 | float[] |
array_cat(left: inet[], right: inet[]) | 追加两个数组。 | inet[] |
array_cat(left: int[], right: int[]) | 追加两个数组。 | int[] |
array_cat(left: interval[], right: interval[]) | 追加两个数组。 | interval[] |
array_cat(left: string[], right: string[]) | 追加两个数组。 | string[] |
array_cat(left: time[], right: time[]) | 追加两个数组。 | time[] |
array_cat(left: timestamp[], right: timestamp[]) | 追加两个数组。 | timestamp[] |
array_cat(left: timestamptz[], right: timestamptz[]) | 追加两个数组。 | timestamptz[] |
array_cat(left: uuid[], right: uuid[]) | 追加两个数组。 | uuid[] |
array_cat(left: varbit[], right: varbit[]) | 追加两个数组。 | varbit[] |
array_length(input: anyelement[], array_dimension: int) | 计算input提供的上的长度array_dimension。但是,由于目前尚不支持多维数组,因此唯一支持的array_dimension是1。 | int |
array_lower(input: anyelement[], array_dimension: int) | 计算input提供的上的最小值array_dimension。但是,由于目前尚不支持多维数组,因此唯一支持的array_dimension是1。 | int |
array_position(array: bool[], elem: bool) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: bytes[], elem: bytes) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: date[], elem: date) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: decimal[], elem: decimal) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: float[], elem: float) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: inet[], elem: inet) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: int[], elem: int) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: interval[], elem: interval) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: string[], elem: string) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: time[], elem: time) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: timestamp[], elem: timestamp) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: timestamptz[], elem: timestamptz) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: uuid[], elem: uuid) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: oid[], elem: oid) | 返回数组中elem 第一次出现的索引 。 | int |
array_position(array: varbit[], elem: varbit) | 返回数组中elem 第一次出现的索引 。 | int |
array_positions(array: bool[], elem: bool) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: bytes[], elem: bytes) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: date[], elem: date) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: decimal[], elem: decimal) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: float[], elem: float) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: inet[], elem: inet) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: int[], elem: int) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: interval[], elem: interval) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: string[], elem: string) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: time[], elem: time) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: timestamp[], elem: timestamp) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: timestamptz[], elem: timestamptz) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: uuid[], elem: uuid) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: oid[], elem: oid) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_positions(array: varbit[], elem: varbit) | 返回所有elem 在数组中出现的索引的数组。 | int[] |
array_prepend(elem: bool, array: bool[]) | 将elem 加入数组,返回结果。 | bool[] |
array_prepend(elem: bytes, array: bytes[]) | 将elem 加入数组,返回结果。 | bytes[] |
array_prepend(elem: date, array: date[]) | 将elem 加入数组,返回结果。 | date[] |
array_prepend(elem: decimal, array: decimal[]) | 将elem 加入数组,返回结果。 | decimal[] |
array_prepend(elem: float, array: float[]) | 将elem 加入数组,返回结果。 | float[] |
array_prepend(elem: inet, array: inet[]) | 将elem 加入数组,返回结果。 | inet[] |
array_prepend(elem: int, array: int[]) | 将elem 加入数组,返回结果。 | int[] |
array_prepend(elem: interval, array: interval[]) | 将elem 加入数组,返回结果。 | interval[] |
array_prepend(elem: string, array: string[]) | 将elem 加入数组,返回结果。 | string[] |
array_prepend(elem: time, array: time[]) | 将elem 加入数组,返回结果。 | time[] |
array_prepend(elem: timestamp, array: timestamp[]) | 将elem 加入数组,返回结果。 | timestamp[] |
array_prepend(elem: timestamptz, array: timestamptz[]) | 将elem 加入数组,返回结果。 | timestamptz[] |
array_prepend(elem: uuid, array: uuid[]) | 将elem 加入数组,返回结果。 | uuid[] |
array_prepend(elem: varbit, array: varbit[]) | 将elem 加入数组,返回结果。 | varbit[] |
array_remove(array: bool[], elem: bool) | 从数组中删除所有等于elem的元素。 | bool[] |
array_remove(array: bytes[], elem: bytes) | 从数组中删除所有等于elem的元素。 | bytes[] |
array_remove(array: date[], elem: date) | 从数组中删除所有等于elem的元素。 | date[] |
array_remove(array: decimal[], elem: decimal) | 从数组中删除所有等于elem的元素。 | decimal[] |
array_remove(array: float[], elem: float) | 从数组中删除所有等于elem的元素。 | float[] |
array_remove(array: inet[], elem: inet) | 从数组中删除所有等于elem的元素。 | inet[] |
array_remove(array: int[], elem: int) → int[] | 从数组中删除所有等于elem的元素。 | int[] |
array_remove(array: interval[], elem: interval) | 从数组中删除所有等于elem的元素。 | interval[] |
array_remove(array: string[], elem: string) | 从数组中删除所有等于elem的元素。 | string[] |
array_remove(array: time[], elem: time) | 从数组中删除所有等于elem的元素。 | time[] |
array_remove(array: timestamp[], elem: timestamp) | 从数组中删除所有等于elem的元素。 | timestamp[] |
array_remove(array: timestamptz[], elem: timestamptz) | 从数组中删除所有等于elem的元素。 | timestamptz[] |
array_remove(array: uuid[], elem: uuid) | 从数组中删除所有等于elem的元素。 | uuid[] |
array_remove(array: varbit[], elem: varbit) | 从数组中删除所有等于elem的元素。 | varbit[] |
array_replace(array: bool[], toreplace: bool, replacewith: bool) | 用replacewith替换数组中出现的所有toreplace。 | bool[] |
array_replace(array: bytes[], toreplace: bytes, replacewith: bytes) | 用replacewith替换数组中出现的所有toreplace。 | bytes[] |
array_replace(array: date[], toreplace: date, replacewith: date) | 用replacewith替换数组中出现的所有toreplace。 | date[] |
array_replace(array: decimal[], toreplace: decimal, replacewith: decimal) | 用replacewith替换数组中出现的所有toreplace。 | decimal[] |
array_replace(array: float[], toreplace: float, replacewith: float) | 用replacewith替换数组中出现的所有toreplace。 | float[] |
array_replace(array: inet[], toreplace: inet, replacewith: inet) | 用replacewith替换数组中出现的所有toreplace。 | inet[] |
array_replace(array: int[], toreplace: int, replacewith: int) | 用replacewith替换数组中出现的所有toreplace。 | int[] |
array_replace(array: interval[], toreplace: interval, replacewith: interval) | 用replacewith替换数组中出现的所有toreplace。 | interval[] |
array_replace(array: string[], toreplace: string, replacewith: string) | 用replacewith替换数组中出现的所有toreplace。 | string[] |
array_replace(array: time[], toreplace: time, replacewith: time) | 用replacewith替换数组中出现的所有toreplace。 | time[] |
array_replace(array: timestamp[], toreplace: timestamp, replacewith: timestamp) | 用replacewith替换数组中出现的所有toreplace。 | timestamp[] |
array_replace(array: timestamptz[], toreplace: timestamptz, replacewith: timestamptz) | 用replacewith替换数组中出现的所有toreplace。 | timestamptz[] |
array_replace(array: uuid[], toreplace: uuid, replacewith: uuid) | 用replacewith替换数组中出现的所有toreplace。 | uuid[] |
array_replace(array: varbit[], toreplace: varbit, replacewith: varbit) | 用replacewith替换数组中出现的所有toreplace。 | varbit[] |
array_to_string(input: anyelement[], delim: string) | 用定界符将数组连接到字符串中。 | string` |
array_to_string(input: anyelement[], delimiter: string, null: string) | 用分隔符将数组连接到字符串中,用空字符串替换NULL。 | string |
array_upper(input: anyelement[], array_dimension: int) | 计算input提供的上的最大值array_dimension。但是,由于目前尚不支持多维数组,因此唯一支持的array_dimension是1。 | int |
string_to_array(str: string, delimiter: string) | 将字符串拆分为分隔符上的组件。 | string[] |
string_to_array(str: string, delimiter: string, null: string) | 使用指定的字符串将字符串拆分为定界符上的组件,以将其视为NULL。 | string[] |
案例:
数据示例
CREATE TABLE test_array (a STRING[]);
INSERT INTO test_array VALUES (ARRAY['Monday', 'Tuesday', 'Wednesday']);
select * from test_array;
a
+----------------------------+
{Monday,Tuesday,Wednesday} 数组拼接单个元素
select array_append(a,'Thursday') from test_array;
array_append
+-------------------------------------+
{Monday,Tuesday,Wednesday,Thursday}两个数组拼接
select array_cat(a,ARRAY['Thursday', 'Friday', 'Saturday']) from test_array;
array_cat
+-----------------------------------------------------+
{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}数组大小,第二个参数暂时只支持1个间隔计算。
select array_length(a,1) from test_array;
array_length
+--------------+
3返回指定的数组维数的下界,第二个参数暂时只支持1个间隔计算。
select array_lower(a,1) from test_array;
array_lower
+-------------+
1返回指定数组维数的上界,第二个参数暂时只支持1个间隔计算。
select array_upper(a,1) from test_array;
array_upper
+-------------+
3返回元素的位置
select array_position(a,'Tuesday') from test_array;
array_position
+----------------+
2 数组之前插入元素
select array_prepend('Thursday',a) from test_array;
array_prepend
+-------------------------------------+
{Thursday,Monday,Tuesday,Wednesday}数组中删除元素
select array_remove(a,'Tuesday') from test_array;
array_remove
+--------------------+
{Monday,Wednesday}替换数组中的元素y为z
select array_replace(a,'Tuesday','Thursday') from test_array;
array_replace
+-----------------------------+
{Monday,Thursday,Wednesday}数组转字符串,按delim分隔
select array_to_string(a,',') from test_array;
array_to_string
+--------------------------+
Monday,Tuesday,Wednesday数组转字符串,按delim分隔,y代替null,即保留null在字符串中的位置。
select array_to_string(ARRAY['Thursday', 'Friday', 'Saturday',null,'Friday'],',');
array_to_string
+---------------------------------+
Thursday,Friday,Saturday,Friday
select array_to_string(ARRAY['Thursday', 'Friday', 'Saturday',null,'Friday'],',','y');
array_to_string
+----------------------------------+
Thursday,Friday,Saturday,y,Friday字符串转数组,按分隔符拆分
select string_to_array('Thursday,Friday,Saturday,Friday',',');
string_to_array
+-----------------------------------+
{Thursday,Friday,Saturday,Friday}字符串转数组,按分隔符拆分,将y视为null
select string_to_array('Thursday,Friday,Saturday,y,Friday',',','y');
string_to_array
+----------------------------------------+
{Thursday,Friday,Saturday,NULL,Friday}| 函数 | 说明 | 返回值类型 |
|---|---|---|
greatest(anyelement...) | 返回具有最大值的元素。 | anyelement |
least(anyelement...) | 返回具有最小值的元素。 | anyelement |
ltrim('m','n') | 返回具有最左边的元素。 | string |
案例:
取元素中的最大值
select greatest(1,4,6,9,12,5,7);
greatest
+----------+
12 取元素中的最小值
select least(8,1,4,6,9,12,5,7);
least
+-------+
1 取值取左边的字符串
select ltrim('m','n');
ltrim
+-------+
m | 函数 | 说明 | 返回值类型 |
|---|---|---|
age(end: timestamptz, begin: timestamptz) | 计算begin和end之间的时间间隔。 | interval |
age(val: timestamptz) | 计算val与当前时间之间的间隔。 | interval |
clock_timestamp() | 返回一个集群节点上的当前系统时间。 | timestamp |
current_date() | 返回当前事务的日期。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | date |
current_timestamp() | 返回当前事务的时间。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | date |
current_timestamp() | 返回当前事务的时间。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | timestamp |
date_trunc(element: string, input: time) → interval | input精确到截断element。将所有不重要的字段设置element为零。兼容元素:时,分,秒,毫秒,微秒。 | interval |
date_trunc(element: string, input: timestamp) → timestamp | input精确到截断element。将所有不重要的字段设置element为零(对于日和月,则为一)兼容的元素:年,季,月,周,小时,分钟,秒,毫秒,微秒。 | timestamp |
date_trunc(element: string, input: timestamptz) | input精确到截断element。将所有不重要的字段设置element为零(对于日和月,则为一)兼容的元素:年,季,月,周,小时,分钟,秒,毫秒,微秒。 | timestamptz |
experimental_follower_read_timestamp() | 返回一个时间戳,很可能可以安全地针对跟随者副本执行。此功能旨在与AS OF SYSTEM TIME子句一起使用,以对最近的时间执行历史读取,但时间要足够长,以便针对给定范围内的当前租户(相对于最近的租户)执行读取操作。请注意,此功能需要CCL发行版上的企业许可证才能无错误地返回。 | timestamptz |
to_char(input: date, extract_format: string) | 从中input提取和格式化extract_format使用标准strftime符号标识的时间(尽管并非所有格式都受支持)。 | string |
to_char(input: timestamp, extract_format: string) | 从中input提取和格式化extract_format使用标准strftime符号标识的时间(尽管并非所有格式都受支持)。 | string |
to_char(input: timestamptz, extract_format: string) | 从中input提取和格式化extract_format使用标准strftime符号标识的时间(尽管并非所有格式都受支持)。 | string |
to_date(input: string, format: string) | input使用format(使用标准strptime格式)作为时间戳返回。 | timestamp |
to_datetz(input: string, format: string) | input使用format(使用标准strptime格式)作为时间戳返回。 | timestamptz |
extract(element: string, input: date) | element从中提取input。兼容的元素:年,季度,月,周,星期几,年日,小时,分钟,秒,毫秒,微秒 | int |
extract(element: string, input: time) | element从中提取input。兼容的元素:小时,分钟,秒,毫秒,微秒 | int |
extract(element: string, input: timestamp) | element从中提取input。兼容的元素:年,季度,月,周,星期几,年日,小时,分钟,秒,毫秒,微秒 | int |
extract(element: string, input: timestamptz) | element从中提取input。兼容的元素:年,季度,月,周,星期几,年日,小时,分钟,秒,毫秒,微秒 | int |
now() | 返回当前交易的时间。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | date |
now() | 返回当前交易的时间。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | timestamp |
statement_timestamp() | 返回当前语句的开始时间。 | timestamp |
timezone(timestamp: timestamp, timezone: string) | 将不带时区的给定时间戳视为位于指定时区中 | timestamp |
transaction_timestamp() | 返回当前交易的时间。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | date |
transaction_timestamp() | 返回当前交易的时间。该值基于事务开始时选择的时间戳记,并且在整个事务中保持不变。此时间戳与并发事务的提交顺序没有关系。 | timestamp |
cast() | 返回当前交易的时间。将时间转换成字符串类型并截取出来。 | string |
案例:
计算end和begin之间的时间间隔
select age(TIMESTAMPTZ '2019-03-26 14:22:10+08:00',TIMESTAMPTZ '2019-03-26 10:10:10-05:00');
age
+-----------+
-08:48:00 与当前时间的间隔
select age(TIMESTAMPTZ '2019-03-26 14:22:10+08:00');
age
+-------------------+
6531:32:02.512077当前日期
当前时间
截断时间,后边清零,x(year, quarter, month, week, hour, minute, second, millisecond, microsecond)
select date_trunc('month',TIMESTAMPTZ '2019-03-26 14:22:10+08:00');
date_trunc
+---------------------------+
2019-03-01 00:00:00+08:00
(1 row)input中提取x(year, quarter, month, week, hour, minute, second, millisecond, microsecond)
select extract('month',TIMESTAMPTZ '2019-03-26 14:22:10+08:00');
extract
+---------+
3timestamp类型怎么能转成字符串并截串
select cast('20220107' as string);
text
+----------+
20210107
| 函数 | 说明 | 返回值类型 |
|---|---|---|
gen_random_uuid() | 生成随机UUID并将其作为UUID类型的值返回。 | uuid |
unique_rowid() | 如果未为表定义主键,则返回用于生成唯一行ID的唯一ID。该值是插入时间戳记与执行该语句的节点的ID的组合,从而确保此组合在全局上是唯一的。但是,可能存在差距,不能完全保证顺序。 | int |
生成随机uuid
select gen_random_uuid();
gen_random_uuid
+--------------------------------------+
9c5b836c-486b-46ed-acb3-701c093f59fa
(1 row) select unique_rowid();
unique_rowid
+--------------------+
514553266254184454
(1 row)生成唯一键,保证全局唯一,可用作主键。但由于集群性质,不能完全保证排序。
| 函数 | 返回类型 | 参数类型 | 说明 |
|---|---|---|---|
| abs | float | float | 计算绝对值 |
| abs | decimal | decimal | 计算绝对值 |
| abs | int | int | 计算绝对值 |
| acos | float | float | 计算反余弦 |
| asin | float | float | 计算反正弦 |
| atan | float | float | 计算反正切 |
| atan2 | float | float,float | 计算入参的相除的反正切 |
| cbrt | decimal | decimal | 计算立方根 |
| cbrt | float | float | 计算立方根 |
| ceil | decimal | decimal | 计算最小整数 |
| ceil | float | float | 计算最小整数 |
| cos | float | float | 计算余弦值 |
| cot | float | float | 计算余切 |
| crc32c | int | bytes | compute CRC(Castagnoli polynomial.) |
| crc32c | int | string | compute CRC(Castagnoli polynomial.) |
| crc32ieee | int | bytes | compute CRC(IEEE polynomial) |
| crc32ieee | int | string | compute CRC(IEEE polynomial) |
| degrees | float | float | 将弧度值转换为度值 |
| div | decimal | decimal,decimal | 计算x/y的整数商 |
| div | float | float,float | 计算x/y的整数商 |
| div | int | int,int | 计算x/y的整数商 |
| exp | float | float | e的幂次方 |
| floor | decimal | decimal | 计算不大于入参的最大整数 |
| floor | float | float | 计算不大于入参的最大整数 |
| fnv32 | int | bytes | 计算32位的 FNV-1 hash值 |
| fnv32 | int | string | 计算32位的 FNV-1 hash值 |
| fnv32a | int | bytes | 计算32位的 FNV-1a hash值 |
| fnv32a | int | string | 计算32位的 FNV-1a hash值 |
| fnv64 | int | bytes | 计算64位的 FNV-1 hash值 |
| fnv64 | int | string | 计算64位的 FNV-1 hash值 |
| fnv64a | int | bytes | 计算64位的 FNV-1a hash值 |
| fnv64a | int | string | 计算64位的 FNV-1a hash值 |
| isnan | bool | decimal | 判断是否为NaN |
| isnan | bool | float | 判断是否为NaN |
| ln | decimal | decimal | 计算自然对数 |
| ln | float | float | 计算自然对数 |
| log | decimal | decimal | 计算以10为底的对数 |
| log | float | float | 计算以10为底的对数 |
| mod | decimal | decimal,decimal | 计算余数 |
| mod | float | float,float | 计算余数 |
| mod | int | int,int | 计算余数 |
| pi | float | 3.141592653589793 | |
| pow | decimal | decimal,decimal | x^y |
| pow | float | float,float | x^y |
| pow | int | int,int | x^y |
| radians | float | float | 度值转换为弧度值 |
| random() | float | float | 0与1之间的随机数 |
| round | decimal | decimal,int | 四舍五入到给定的小数位数 |
| round | float | float,int | 四舍五入到给定的小数位数 |
| round | decimal | decimal | 四舍五入取整数 |
| round | float | float | 四舍五入取整数 |
| sign | decimal | decimal | 符号函数 |
| sign | float | float | 符号函数 |
| sign | int | int | 符号函数 |
| sin | float | float | 计算正弦 |
| sqrt | decimal | decimal | 计算平方根 |
| sqrt | float | float | 计算平方根 |
| tan | float | float | 计算正切 |
| trunc | decimal | decimal | 截断小数 |
| trunc | float | float | 截断小数 |
| 函数 | 返回类型 | 参数 | 说明 |
|---|---|---|---|
| ascii | int | string | 返回第一个字符的asc编码 |
| bit_length | int | bytes | 计算bits数 |
| bit_length | int | string | 计算bits数 |
| btrim | string | string,string | 删除匹配的字符 |
| btrim | string | string | 去除空格 |
| char_length | int | bytes | 计算字节长度 |
| char_length | int | string | 计算字符长度 |
| chr | string | int | 返回ascii值 |
| concat | string | string... | 拼接字符串 |
| concat_ws | string | string... | 使用第一个参数拼接字符串 |
| convert_from | string | bytes,string | 将字节转化为执行编码的字符串(支持UTF8与LATIN1) |
| convert_to | bytes | string,string | 将字符串转化为指定编码的字节(支持UTF8与LATIN1) |
| decode | bytes | string,string | 换化为字节码,支持hex,escape,base64 |
| encode | string | bytes,string | 换化为字符串,支持hex,escape,base64 |
| from_ip | string | bytes | 将IP的字节字符串表示形式转换为其字符串表示形式 |
| from_uuid | string | bytes | 将UUID的字节字符串表示形式转换为其字符串表示形式。 |
| initcap | string | string | 第一个字母大写。 |
| left | bytes | bytes,int | 获取头几位字节 |
| left | string | string,int | 获取头几位字符串 |
| length | int | bytes | 计算字节码的长度 |
| length | int | string | 计算字符串的长度 |
| lower | string | string | 将大写转化为小写 |
| lpad | string | string,int | 通过在字符串的左侧添加' '来增加长度。如果字符串比长度长,就被截断。 |
| lpad | string | string,int ,string | 通过在字符串的左侧添加传入参数来增加长度。如果字符串比长度长,就被截断。 |
| ltrim | string | string,string | 递归从输入的开始(左侧)删除包含的所有字符 |
| ltrim | string | string | 去除左边的空格 |
| md5 | string | bytes | 计算MD5值 |
| md5 | string | string | 计算MD5值 |
| octet_length | int | bytes | 计算字节数 |
| octet_length | int | string | 计算字节数 |
| overlay | string | string,string,int | 从指定下标开始替换字符 |
| overlay | string | string,string,int,int | 从指定下标开始替换字符 |
| quote_ident | string | string | 返回val作为SQL语句中的标识符。 |
| quote_literal | string | string | 返回val作为SQL语句中的字符串文字适当引用。 |
| quote_nullable | string | string | 将参数强制转换为字符串,然后将其作为文字引用。如果v参数为空,则返回“NULL”。 |
| regexp_extract | string | string,string | 返回输入中正则表达式的第一个匹配项。 |
| regexp_replace | string | string,string,string | 将输入中的正则表达式regex的匹配项替换为正则表达式替换。 |
| repeat | string | string,int | 返回输入指定重复次数的参数 |
| replace | string | string,string,string | 用replace替换输入的第三个参数替换匹配的第二个参数 |
| reverse | string | string | 反转字符串字符的顺序。 |
| right | bytes | bytes,int | 获取从右开始头几位字节 |
| right | string | string,int | 获取从右开始头几位字符 |
| rpad | string | string,int | 通过在字符串的右侧添加' '来增加长度。如果字符串比长度长,就被截断。 |
| rpad | string | string,int,string | 通过在字符串的右侧添加传入参数来增加长度。如果字符串比长度长,就被截断。 |
| rtrim | string | string,string | 递归从输入的开始(右侧)删除包含的所有字符 |
| rtrim | string | string | 去除右边的空格 |
| sha1 | string | bytes | 计算SHA1值 |
| sha1 | string | string | 计算SHA1值 |
| sha256 | string | bytes | 计算SHA256值 |
| sha256 | string | string | 计算SHA256值 |
| sha512 | string | bytes | 计算SHA512值 |
| sha512 | string | string | 计算SHA512值 |
| split_part | string | string,string,int | 分割分隔符上的输入并返回第几位 |
| strpos | int | string,string | 计算输入中字符串开始的位置。 |
| substr | string | string,string | 返回与正则表达式regex匹配的输入子字符串。 |
| substr | string | string,string,string | 返回与正则表达式regex匹配的输入子字符串,使用第三个参数作为转义字符 |
| substr | string | string,int | 从指定下标开始截取字符串 |
| substr | string | string,int,int | 从指定下标开始截取字符串,并指定截取字符串长度 |
| to_english | string | int | 此函数使用英语基数来声明其参数的值。 |
| to_hex | string | bytes | 将val转换为其十六进制表示形式。 |
| to_hex | bytes | string | 将val转换为其十六进制表示形式。 |
| to_uuid | bytes | string | 将UUID的字符串表示形式转换为其字节字符串表示形式。 |
| translate | string | string,string,string | 指定替代字符串内容 |
| upper | string | string | 将字符内容转为大写 |
| 函数 | 说明 | 返回值类型 |
|---|---|---|
cume_dist() | 计算当前行的相对排名:(当前行之前或与之对等的行数)/(总行数)。 | float |
dense_rank() | 计算当前行的排名,不留空格;此功能计算对等组。 | int |
first_value(val: bool) | 返回val在窗口框第一行的那一行求值。 | bool |
first_value(val: bytes) | 返回val在窗口框第一行的那一行求值。 | bytes |
first_value(val: date) | 返回val在窗口框第一行的那一行求值。 | date |
first_value(val:decimal) | 返回val在窗口框第一行的那一行求值。 | decimal |
first_value(val: float) | 返回val在窗口框第一行的那一行求值。 | float |
first_value(val: int) | 返回val在窗口框第一行的那一行求值。 | int |
first_value(val: string) | 返回val在窗口框第一行的那一行求值。 | string |
first_value(val: time) | 返回val在窗口框第一行的那一行求值。 | time |
first_value(val: timestamp) | 返回val在窗口框第一行的那一行求值。 | timestamp |
first_value(val: uuid) | 返回val在窗口框第一行的那一行求值。 | uuid |
first_value(val: jsonb) | 返回val在窗口框第一行的那一行求值。 | jsonb |
lag(val: bool) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | bool |
lag(val: bool, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | bool |
lag(val: bool, n: int, default: bool) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | bool |
lag(val: date, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | date |
lag(val: date, n: int, default: date) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | date |
lag(val: decimal) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | decimal |
lag(val: decimal, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | decimal |
lag(val: decimal, n: int, default: decimal) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | decimal |
lag(val: float) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | float |
lag(val: float, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | float |
lag(val: float, n: int, default: float) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | float |
lag(val: inet) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | inet |
lag(val: inet, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | inet |
lag(val: inet, n: int, default: inet) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | inet |
lag(val: int) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | int |
lag(val: int, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | int |
lag(val: int, n: int, default: int) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | int |
lag(val: interval) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | interval |
lag(val: interval, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | interval |
lag(val: interval, n: int, default: interval) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | interval |
lag(val: string) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | string |
lag(val: string, n: int) → string | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | string |
lag(val: string, n: int, default: string) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | string |
lag(val: time) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | time |
lag(val: time, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | time |
lag(val: time, n: int, default: time) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | time |
lag(val: timestamp) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | timestamp |
lag(val: timestamp, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | timestamp |
lag(val: timestamp, n: int, default: timestamp) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | timestamp |
lag(val: timestamptz) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | timestamptz |
lag(val: timestamptz, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | timestamptz |
lag(val: timestamptz, n: int, default: timestamptz) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | timestamptz |
lag(val: uuid) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | uuid |
lag(val: uuid, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | uuid |
lag(val: uuid, n: int, default: uuid) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | uuid |
lag(val: jsonb) | 返回val在当前行分区内的前一行求值的结果;如果没有这样的行,则返回null。 | jsonb |
lag(val: jsonb, n: int) | 返回在其分区中当前行之前的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | jsonb |
lag(val: jsonb, n: int, default: jsonb) | 返回在其分区中当前行之前的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | jsonb |
last_value(val: bool) | 返回val在窗框的最后一行的那一行求值。 | bool |
last_value(val: bytes) | 返回val在窗框的最后一行的那一行求值。 | bytes |
last_value(val: date) | 返回val在窗框的最后一行的那一行求值。 | date |
last_value(val: decimal) | 返回val在窗框的最后一行的那一行求值。 | decimal |
last_value(val: float) | 返回val在窗框的最后一行的那一行求值。 | float |
last_value(val: inet) | 返回val在窗框的最后一行的那一行求值。 | inet |
last_value(val: int) | 返回val在窗框的最后一行的那一行求值。 | int |
last_value(val: interval) | 返回val在窗框的最后一行的那一行求值。 | interval |
last_value(val: string) | 返回val在窗框的最后一行的那一行求值。 | string |
last_value(val: time) | 返回val在窗框的最后一行的那一行求值。 | time |
last_value(val: timestamp) | 返回val在窗框的最后一行的那一行求值。 | timestamp |
last_value(val: timestamptz) | 返回val在窗框的最后一行的那一行求值。 | timestamptz |
last_value(val: uuid) | 返回val在窗框的最后一行的那一行求值。 | uuid |
last_value(val: jsonb) | 返回val在窗框的最后一行的那一行求值。 | jsonb |
lead(val: bool) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | bool |
lead(val: bool, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | bool |
lead(val: bool, n: int, default: bool) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | bool |
lead(val: bytes) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | bytes |
lead(val: bytes, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | bytes |
lead(val: bytes, n: int, default: bytes) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | bytes |
lead(val: date) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | date |
lead(val: date, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | date |
lead(val: date, n: int, default: date) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | date |
lead(val: decimal) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | decimal |
lead(val: decimal, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | decimal |
lead(val: decimal, n: int, default: decimal) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | decimal |
lead(val: float) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | float |
lead(val: float, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | float |
lead(val: float, n: int, default: float) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | float |
lead(val: inet) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | inet |
lead(val: inet, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | int |
lead(val: inet, n: int, default: inet) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | inet |
lead(val: int) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | int |
lead(val: int, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | int |
lead(val: int, n: int, default: int) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | int |
lead(val: interval) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | interval |
lead(val: interval, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | interval |
lead(val: interval, n: int, default: interval) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | interval |
lead(val: string) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | string |
lead(val: string, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | string |
lead(val: string, n: int, default: string) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | string |
lead(val: time) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | time |
lead(val: time, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | time |
lead(val: time, n: int, default: time) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | time |
lead(val: timestamp) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | timestamp |
lead(val: timestamp, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | timestamp |
lead(val: timestamp, n: int, default: timestamp) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | timestamp |
lead(val: timestamptz) → timestamptz | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | timestamptz |
lead(val: timestamptz, n: int) → timestamptz | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | timestamptz |
lead(val: timestamptz, n: int, default: timestamptz) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | timestamptz |
lead(val: uuid) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | uuid |
lead(val: uuid, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | uuid |
lead(val: uuid, n: int, default: uuid) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | uuid |
lead(val: jsonb) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | jsonb |
lead(val: jsonb, n: int) | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | jsonb |
lead(val: jsonb, n: int, default: jsonb) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | jsonb |
lead(val: varbit) | 返回val当前行分区中下一行的求值;如果没有这样的行,则返回null。 | varbit |
lead(val: varbit, n: int) → varbit | 返回在其分区中当前行之后的行val处求值n;如果没有这样的行,则返回null。n针对当前行进行评估。 | varbit |
lead(val: varbit, n: int, default: varbit) | 返回在其分区中当前行之后的行val处求值n;如果没有,则返回行default(必须与类型相同val)。双方n并default相对于当前行评估。 | varbit |
nth_value(val: bool, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | bool |
nth_value(val: bytes, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | bytes |
nth_value(val: date, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | date |
nth_value(val: decimal, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | decimal |
nth_value(val: float, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | float |
nth_value(val: inet, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | inet |
nth_value(val: int, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | int |
nth_value(val: interval, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | interval |
nth_value(val: string, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | string |
nth_value(val: time, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | time |
nth_value(val: timestamp, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | timestamp |
nth_value(val: timestamptz, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | timestamptz |
nth_value(val: uuid, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | uuid |
nth_value(val: jsonb, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | jsonb |
nth_value(val: varbit, n: int) | 返回val在n窗框第th行(从1开始)处求值的值;如果没有这样的行,则返回null。 | varbit |
ntile(n: int) | 计算范围为1到的整数n,将分区尽可能平均地划分。 | int |
percent_rank() | 计算当前行的相对等级:(等级-1)/(总行-1)。 | float |
rank() | 计算带有间隙的当前行的排名;与第一个对等方的row_number相同。 | int |
row_number() | 计算分区中当前行的数量,从1开始计算。 | int |
| 函数 | 说明 | 返回值类型 |
|---|---|---|
array_to_json(array: anyelement[]) | 将数组返回为JSON或JSONB。 | json |
json_array_length(json: jsonb) → int | 返回最外面的JSON或JSONB数组中的元素数。 | int |
json_build_array(anyelement...) | 从可变参数列表中构建一个可能是异构类型的JSON或JSONB数组。 | json |
json_build_object(anyelement...) | 从可变参数列表中构建JSON对象。 | json |
json_extract_path(jsonb, string...) | 返回可变参数所指向的JSON值。 | json |
json_object(keys: string[], values: string[]) | 这种形式的json_object从两个单独的数组中成对地获取键和值。在所有其他方面,它与单参数形式相同。 | json |
json_object(texts: string[]) | 从文本数组构建JSON或JSONB对象。数组必须具有一维且成员数为偶数,在这种情况下,它们被视为交替的键/值对。 | json |
json_remove_path(val: jsonb, path: string[]) | 从JSON对象中删除指定的路径。 | json |
json_set(val: jsonb, path: string[], to: jsonb) | 返回可变参数所指向的JSON值。 | json |
json_set(val: jsonb, path: string[], to: jsonb, create_missing: bool) | 返回可变参数所指向的JSON值。如果create_missing为false,则不会将新键插入对象,也不会在值之前或之后添加值。 | json |
json_strip_nulls(from_json: jsonb) | 返回from_json,其中所有具有空值的对象字段都被省略。其他空值保持不变。 | json |
json_typeof(val: jsonb) | 以文字字串传回最外层JSON值的类型。 | string |
jsonb_array_length(json: jsonb) | 返回最外面的JSON或JSONB数组中的元素数。 | int |
jsonb_build_array(anyelement...) | 从可变参数列表中构建一个可能是异构类型的JSON或JSONB数组。 | int |
jsonb_build_object(anyelement...) | 从可变参数列表中构建JSON对象。 | json |
jsonb_extract_path(jsonb, string...) | 返回可变参数所指向的JSON值。 | json |
jsonb_insert(target: jsonb, path: string[], new_val: jsonb) | 返回可变参数所指向的JSON值。new_val将在路径目标之前插入。 | jsonb |
jsonb_insert(target: jsonb, path: string[], new_val: jsonb, insert_after: bool) | 返回可变参数所指向的JSON值。如果insert_after为true(默认为false),new_val则将在路径目标之后插入。 | jsonb |
jsonb_object(keys: string[], values: string[]) | 这种形式的json_object从两个单独的数组中成对地获取键和值。在所有其他方面,它与单参数形式相同。 | jsonb |
jsonb_object(texts: string[]) | 从文本数组构建JSON或JSONB对象。数组必须具有一维且成员数为偶数,在这种情况下,它们被视为交替的键/值对。 | jsonb |
jsonb_pretty(val: jsonb) | 以缩进和换行符的形式返回给定的JSON值。 | string |
jsonb_set(val: jsonb, path: string[], to: jsonb) | 返回可变参数所指向的JSON值。 | jsonb |
jsonb_set(val: jsonb, path: string[], to: jsonb, create_missing: bool) | 返回可变参数所指向的JSON值。如果create_missing为false,则不会将新键插入对象,也不会在值之前或之后添加值。 | jsonb |
jsonb_strip_nulls(from_json: jsonb) | 返回from_json,其中所有具有空值的对象字段都被省略。其他空值保持不变。 | jsonb |
jsonb_typeof(val: jsonb) | 以文字字串传回最外层JSON值的类型。 | string |
to_json(val: anyelement) | 以JSON或JSONB的形式返回值。 | json |
to_jsonb(val: anyelement) | 以JSON或JSONB的形式返回值。 | jsonb |