当前位置: 首页 > article >正文

金仓数据库 KingbaseES参考手册-(8.函数(三))

8.51. BIT_AND

用法:

bit_and(expression)

功能:

聚集函数,计算所有非空值按位与。如果没有非空值传入,返回空值。

例子:

CREATE TABLE tinyint_fun(a tinyint);
INSERT INTO tinyint_fun values('55');
INSERT INTO tinyint_fun values('100');
SELECT bit_and(a) from tinyint_fun;

8.52. BIT_LENGTH

用法:

bit_length(string)

功能:

返回 string 中的位数

例子:

SELECT bit_length('jose');

8.53. BIT_OR

用法:

bit_or(expression)

功能:

聚集函数,对输入的非空值按位或运算,如果没有输入非空值,则返回空值。

例子:

CREATE TABLE tinyint_fun(a tinyint);
INSERT INTO tinyint_fun values('55');
INSERT INTO tinyint_fun values('100');
SELECT bit_or(a) from tinyint_fun;

8.54. BITAND

用法:

bitand(expr1, expr2)

功能:

该BITAND函数将其输入和输出视为位向量;输出是AND输入的按位。expr1和的类型expr2是NUMBER,结果是类型NUMBER。如果任一参数BITAND为NULL,则结果为NULL。参数必须在 -(2 (n-1) ) .. ((2 (n-1) )-1) 范围内。如果参数超出此范围,则结果未定义。

结果分几个步骤计算。首先,每个参数 A 都被替换为 value SIGN(A)*FLOOR(ABS(A))。这种转换具有将每个参数截断为零的效果。接下来,每个参数 A(现在必须是整数值)被转换为 n 位二进制补码二进制整数值。使用按位运算组合这两个位值AND。最后,将得到的 n 位二进制补码值转换回NUMBER.

BITAND 函数的注意事项

  • BITAND定义的当前实现n= 128。

  • PL/SQL 支持重载,BITAND其中输入和结果的类型都为 all BINARY_INTEGER,并且n= 32。

例子:

以下示例AND对数字 6(二进制 1,1,0)和 3(二进制 0,1,1)执行操作:

SELECT BITAND(6,3);

8.55. BLOB_EXPORT

用法:

blob_export(blob ,string )

功能:

将 blob 大对象的内容导出到磁盘文件。

例子:

将test_blob表的lob列导入到blob_out.data文件中。

SELECT blob_export(lob, 'blob_out.data') FROM test_blob;

8.56. BLOB_IMPORT

用法:

blob_import(string )

功能:

将指定文件 blob 大对象的形式导入到数据库。

例子:

将blob_out.data文件导入到test_blob表的lob列中。

INSERT INTO test_blob VALUES (2, blob_import('./blob.data'));

8.57. BOOL_AND

用法:

bool_and(expression)

功能:

聚集函数,求逻辑与,如果所有输入值为真则结果为真,否则为假。

例子:

对表 table 的列boolcol所有值求逻辑与。

SELECT bool_and(boolcol) FROM table;

8.58. BOOL_OR

用法:

bool_or(expression)

功能:

聚集函数,求逻辑或,如果有输入值为真则结果为真,否则为假。

例子:

对表 table 的列boolcol所有值求逻辑或。

SELECT bool_or(boolcol) FROM table;

8.59. BOUND_BOX

用法:

bound_box(box, box)

功能:

几何函数,方框到外包框。

例子:

对表 table 的列boolcol所有值求逻辑或。

SELECT bound_box(box '((0,0),(1,1))', box '((3,3),(4,4))');

8.60. BOX

用法:

box(circle)
box(point)
box(point, point)
box(polygon)

功能:

几何函数,根据参数不同。

  • circle 圆到方框

  • point 点到空方框

  • point,point 点到方框

  • polygon 多边形到方框

例子:

SELECT box(circle '((0,0),2.0)');
SELECT box(point '(0,0)');
SELECT box(point '(0,0)', point '(1,1)');
SELECT box(polygon '((0,0),(1,1),(2,0))');

8.61. BTRIM

用法:

btrim(string text [,characters text])
btrim(string bytea, bytes bytea)

功能:

  • 字符串函数,从 string 的开头或结尾删除最长的只包含 characters (默认是一个空格)的串。

  • 二进制串函数,从 string 的开头或结尾删除值出现在 bytes 中字节组成的最长串。

例子:

处理二进制串

SELECT btrim('\000trim\001'::bytea, '\000\001'::bytea);

处理字符串

SELECT btrim('xyxtrimyyx', 'xyz');

8.62. CARDINALITY

用法:

cardinality(anyarray)

功能:

数组函数,返回数组中元素总数,如果数组为空则返回0。

例子:

SELECT cardinality( ARRAY[[1,2], [3,4]]);

8.63. CBRT

用法:

cbrt(dp)

功能:

数学函数,返回 dp 的立方根。

例子:

求 27 的立方根

SELECT cbrt(27.0);

8.64. CEIL

用法:

ceil(n)

功能:

数学函数 ,CEIL返回大于或等于n的最小整数。该数字n始终可以写为整数k和正分数的差f,使得 0 <= f< 1 和n= k- f。CEIL的值是整数k。因此,当且仅当的值恰好是一个整数 时,它的值CEIL就是它本身。此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。该函数返回与参数的数值数据类型相同的数据类型。

例子:

SELECT ceil(-42.8);

8.65. CEILING

用法:

ceiling({dp|numeric})
ceiling()

功能:

  • 数学函数 ,CEIL返回大于或等于dp的最小整数。 ceil 函数的别名。

  • json函数 ,返回大于或等于 SQL/JSON 数字的最接近整数。

例子:

SELECT ceiling(-95.3);
SELECT jsonb_path_query('[0, 1, -2, -3.4, 5.6]', '$[*].ceiling()');

8.66. CENTER

用法:

center(object)

功能:

几何函数 ,返回图形 object 的中心点。

例子:

SELECT center(box '((0,0),(1,2))');

8.67. CHAR_LENGTH

用法:

char_length(string)

功能:

字符串函数 ,返回字符串 string 的字符数。

例子:

SELECT char_length('hello');

8.68. CHARACTER_LENGTH

用法:

character_length(string)

功能:

字符串函数 ,返回字符串 string 的字符数,同 char_length 。

例子:

SELECT character_length('hello');

8.69. CHARINDEX

用法:

charindex(sub_str varchar, src_str varchar[, start_location int default 1])

功能:

字符串函数 ,返回 sub_str 在 src_str 中第一次出现的位置,从 start_location 位置开始查找,start_location 小于等于 0 或者为空时默认为 1。不存在则返回 0。

例子:

SELECT charindex('bar', 'foobarbar', 5);

8.70. CHR

用法:

chr(int)

功能:

字符串函数,返回给定代码的字符。对于 UTF8 该参数被视作一个 Unicode 代码点。对于其他多字节编码该参数必须指定一个 ASCII 字符。 NULL (0)字符不被允许, 因为文本数据类型不能 存储这种字节。

例子:

SELECT chr(65);

8.71. CIRCLE

用法:

circle(box)
circle(point ,double precision)
circle(polygon)

功能:

几何类型转换函数,将输入图形转换到圆形。

例子:

方框到圆

SELECT circle(box '((0,0),(1,1))');

中心和半径到圆

SELECT circle(point'(0,0)', 2.0);

多边形到圆

SELECT circle(polygon '((0,0),(1,1),(2,0))');

8.72. CLOB_EXPORT

用法:

clob_export(clob, string, encode)

功能:

将 clob 大对象的内容导出到文件。 string 指定导出的文件路径,encode 指定编码格式,可以为空。

例子:

SELECT clob_export (lob, 'clob_asc_out.data','sqlascii') FROM test_clob;

8.73. CLOB_IMPORT

用法:

clob_import(string, encode)

功能:

将 clob 大对象的内容从文件导入到数据库。 string 指定导出的文件路径,encode 指定编码格式,可以为空。

例子:

SELECT clob_import ('clob_asc_out.data','sqlascii') FROM dual;

8.74. CLOCK_TIMESTAMP

用法:

clock_timestamp()

功能:

日期/时间函数,返回当前日期和时间(在语句执行期间变化)。

例子:

SELECT clock_timestamp();

8.75. COALESCE

用法:

COALESCE(value [, ...])

功能:

COALESCE 函数返回它的第一个非空参数的值。当且仅当所有参数都为空时才会返回空。它常用于在为显示目的检索数据时用缺省值替换空值。

如果description不为空,这将会返回它的值,否则如果short_description非空则返回short_description的值,如果前两个都为空则返回(none)。 和CASE表达式一样,COALESCE将不会 计算无助于判断结果的参数;也就是说,在第一个非空参数右边的参数不会被计算。这个 SQL标准函数提供了类似于NVLIFNULL的能力,它们被用在某些其他数据库系统中。

例子:

以下示例使用示例oe.product_information表来组织产品清仓销售。它为所有标价的产品提供 10% 的折扣。如果没有标价,则销售价格为最低价格。如果没有最低价格,则销售价格为“5”:

SELECT product_id, list_price, min_price, COALESCE(0.9*list_price, min_price, 5) "Sale" FROM product_information WHERE supplier_id = 102050 ORDER BY product_id;

8.76. COL_DESCRIPTION

用法:

col_description(table_oid, column_number)

功能:

col_description为一个表列返回注释,该表列由所在表的 OID 和它的列号指定(obj_description不能被用在表列,因为表列没有自己的 OID)。

例子:

CREATE TABLE comment_test (
 id int,
 positive_col int CHECK (positive_col > 0),
 indexed_col int,
 CONSTRAINT comment_test_pk PRIMARY KEY (id));

COMMENT ON COLUMN comment_test.id IS 'Column ''id'' on comment_test';
SELECT col_description('comment_test'::regclass, 1) as comment;

8.77. CONCAT

用法:

concat(str ”any” [, str ”any” [, ...] ])

功能:

字符串函数,串接所有参数的文本表示。 NULL 参数被忽略.

例子:

此示例使用嵌套连接三个字符串:

SELECT concat('abcde',2, NULL, 22);

8.78. CONCAT_WS

用法:

concat_ws(sep text,str ” any” [,str ” any” [, ...]])

功能:

字符串函数,将除了第一个参数 seq 外的其他参数用分隔符串接在一起。第一个参数被用作分隔符字符串。NULL 参数被忽略。

例子:

此示例使用分隔符连接三个字符串:

SELECT concat_ws(',','abcde', 2,NULL, 22);

8.79. CONNECTIONS

用法:

connections()

功能:

返回数据库服务器当前的用户连接数。

例子:

SELECT connections();

8.80. CONTAINS

用法:

contains(expr text,expr2 text [,expr3 varchar])

功能:

字符串函数,依据参数expr3 所给出的全文检索的配置信息,以参数 expr2 为查询条件在参数 expr1 中进行 匹 配 查 找,如果找到则返回 true,否则返回 false。

例子:

SELECT CONTAINS('test of contains','contain');

8.81. CONVERT

用法:

convert(string bytea,src_encoding name,dest_encoding name)

功能:

字符串函数,将字符串转换为dest_encoding。原始编码由src_encoding指定。 string在这个编 码中必须可用。转换可以使用 CREATECONVERSION 定义。也有一些预定义的转换。

例子:

用Latin-1 encoding (ISO 8859-1) 表示的 text_in_utf8

SELECT convert('text_in_utf8','UTF8','LATIN1');

8.82. CONVERT_FROM

用法:

convert_from(string bytea, src_encoding name)

功能:

字符串函数,将字符串转换为数据库编码。 原始编码 由src_encoding指定。 string在这个编码中必须可用。

例子:

用当前数据库编码表示的text_in_utf8

SELECT convert_from(’text_in_utf8’,’UTF8’);

8.83. CONVERT_TO

用法:

convert_to(string text,dest_encoding name)

功能:

字符串函数,将字符串 string 转换为 dest_encoding 指定的编码格式。

例子:

用 UTF8 编码表达的 sometext .. code:

SELECT convert_to(’some text’, ’UTF8’);

8.84. CORR

用法:

corr(y,x)

功能:

CORR返回一组数字对的相关系数。您可以将其用作聚合或分析函数。

此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。

例子:

CREATE TABLE aggtest (
    a                       int2,
    b                       float4
);

SELECT corr(b, a) FROM aggtest;

8.85. COS

用法:

cos(n)

功能:

三角函数,COS返回n的余弦(以弧度表示的角度)。

此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。

例子:

以下示例返回 180 度的余弦:

SELECT COS(180 * 3.14159265359/180) ;

8.86. COSH

用法:

cosh(n)

功能:

三角函数,COSH返回n的双曲余弦。

此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。

例子:

以下示例返回零的双曲余弦:

..code:

SELECT COSH(0) ;

8.87. COT

用法:

cot(n)

功能:

三角函数,COSH返回n的余切。n以弧度表示。

例子:

..code:

SELECT cot(1::tinyint);

8.88. COUNT

用法:

count(expr)

功能:

count 返回查询返回的行数。您可以将其用作聚合或分析函数。

如果指定expr,则返回不为空COUNT的行数。您可以计算expr所有行,也可以只计算expr的不同值。

如果您指定星号 (*),则此函数返回所有行,包括重复行和空行。COUNT从不返回 null。

例子:

  • 聚合示例

以下示例COUNT用作聚合函数:

SELECT count(*) "Total" FROM students;
  • 分析示例

下面的示例为employees表中的每个员工计算在低于员工工资 50 到高于员工工资 150 范围内获得工资的员工的移动计数。

SELECT last_name, salary, COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS mov_count FROM employees ORDER BY salary, last_name;

8.89. COVAR_POP

用法:

covar_pop(Y, X)

功能:

covar_pop返回一组数字对的总体协方差。您可以将其用作聚集或分析函数。

此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。

例子:

CREATE TABLE aggtest (
 a                       int2,
 b                       float4
);
SELECT covar_pop(b, a) FROM aggtest;

8.90. COVAR_SAMP

用法:

covar_samp(Y, X)

功能:

COVAR_SAMP返回一组数字对的样本协方差。您可以将其用作聚合或分析函数。

此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。KingBase确定具有最高数值优先级的参数,将其余参数隐式转换为该数据类型,并返回该数据类型。

(SUM(expr1 * expr2) - SUM(expr1) * SUM(expr2) / n) / (n-1)

其中n是 ( expr1, expr2) 对的数量,其中既不为空expr1也不expr2为空。

该函数返回一个类型的值NUMBER。如果函数应用于空集,则返回 null。

例子:

CREATE TABLE aggtest (
 a                       int2,
 b                       float4
);
SELECT covar_samp(b, a) FROM aggtest;

8.91. CUME_DIST

用法:

cume_dist()
cume_dist(args)

功能:

CUME_DIST计算一组值中某个值的累积分布。返回值的范围CUME_DIST是 >0 到 <=1。领带值始终评估为相同的累积分布值。

此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。KingBase数据库确定具有最高数值优先级的参数,将剩余参数隐式转换为该数据类型,进行计算并返回NUMBER。

  • 作为聚合函数,对于由函数的参数和相应的排序规范标识CUME_DIST的假设行,计算行在聚合组中的行之间的相对位置。KingBase进行此计算,就好像假设行被插入到要聚合的行组中一样。该函数的参数标识每个聚合组中的单个假设行。因此,它们必须全部计算为每个聚合组中的常量表达式。常量参数表达式和聚合子句中的表达式按位置匹配。因此,参数的数量必须相同,并且它们的类型必须兼容。

  • 作为分析函数,CUME_DIST计算一组值中指定值的相对位置。对于 row r,假设升序排列,CUME_DISTofr是值小于或等于行数r除以正在评估的行数的值(整个查询结果集或分区)。

例子:

  • 聚合示例

下面的例子计算了一个假设雇员在样本表中的雇员中的累积分布,该雇员的薪水为 $15,500,佣金率为 5% oe.employees:

SELECT CUME_DIST(15500, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Cume-Dist of 15500" FROM employees;
  • 分析示例

以下示例计算采购部门中每个员工的工资百分比。例如,40% 的文员工资低于或等于冰室。

SELECT job_id, last_name, salary, CUME_DIST() OVER (PARTITION BY job_id ORDER BY salary) AS cume_dist FROM employees WHERE job_id LIKE 'PU%' ORDER BY job_id, last_name, salary, cume_dist;

8.92. CURRENT_DATABASE

用法:

current_database()

功能:

会话信息函数,返回当前数据库名。

例子:

SELECT current_database();

8.93. CURRENT_DATE

用法:

current_date()

功能:

current_date以数据类型的公历中的值返回会话时区中的当前日期DATE。

例子:

SELECT current_date();

8.94. CURRENT_QUERY

用法:

current_query()

功能:

当前正在执行的查询的文本,和客户端提交的一样(可能包含多于一个语句).

例子:

SELECT current_query();

8.95. CURRENT_SCHEMA

用法:

current_schema()

功能:

返回当前模式名 。

例子:

SELECT current_schema();

8.96. CURRENT_SCHEMAS

用法:

current_schemas(boolean)

功能:

返回搜索路径中的模式名, boolean 参数指定是否包含隐含模式。

例子:

SELECT current_schemas(true);

8.97. CURRENT_SETTING

用法:

current_setting(setting_name [, missing_ok])

功能:

配置设定函数,获得设置的当前值。 current_setting`得到``setting_name``设置的当前值。它对应于SQL命令SHOW。 如果没有名为``setting_name``的设置,除非提供``missing_ok``并且其值为truecurrent_setting会抛出错误。

例子:

SELECT  current_setting('datestyle');

8.98. CURRENT_TIME

用法:

current_time(precision)

功能:

根据 precision 指定的精度参数,返回带有时区的时间。

例子:

SELECT current_time(8);

8.99. CURRENT_TIMESTAMP

用法:

current_timestamp(precision)

功能:

CURRENT_TIMESTAMP以数据类型的值返回会话时区中的当前日期和时间TIMESTAMP WITH TIME ZONE。时区偏移反映了 SQL 会话的当前本地时间。如果省略precision,则默认值为6。此函数与返回值的区别在于LOCALTIMESTAMP返回值。 CURRENT_TIMESTAMPTIMESTAMP WITH TIME ZONELOCALTIMESTAMPTIMESTAMP在可选参数中,precision指定返回的时间值的小数秒精度。

例子:

SELECT current_timestamp(8);

8.100. CURRVAL

用法:

currval(regclass)

功能:

序列操作函数,返回最近一次用nextval获取的指定序列的值 。

例子:

CREATE TEMP SEQUENCE testseq;
SELECT nextval('testseq');
SELECT currval('testseq');
SELECT nextval('testseq');
SELECT currval('testseq');

8.101. CURSOR_TO_XML

用法:

cursor_to_xml(cursor refcursor, count int, nulls boolean,tableforest boolean, targetns text)

功能:

XML操作函数,把关系表的内容映射成 XML 值。它们可以被看成是 XML 导出功能

例子:

CREATE TABLE xmltbl (a int, b text);
INSERT INTO xmltbl VALUES (1, 'one'), (2, 'two'), (-1, null);
DECLARE xc CURSOR WITH HOLD FOR SELECT * FROM xmltbl ORDER BY 1, 2;
SELECT cursor_to_xml('xc'::refcursor, 5, false, true, '');

http://www.kler.cn/a/313732.html

相关文章:

  • 阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_技术趋势
  • uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • 【专题】计算机网络之网络层
  • 常见的噪声模型+图像中噪声模型的估计+常见的滤波方法(C++)
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】约束布局
  • 在HTML中添加图片
  • Oracle 数据库常用命令与操作指南
  • 安全装备检测系统源码分享
  • 【Python报错已解决】To update, run: python.exe -m pip install --upgrade pip
  • sqlgun靶场通关攻略
  • 代码随想录算法训练营day39
  • 【C/C++语言系列】浅拷贝和深拷贝
  • php curl发送get、post请求
  • 等保测评:企业如何建立安全的开发环境
  • Opencv + Opencv_contrib的源码编译安装以及C++调用和cmakelist编写
  • 8.安卓逆向-安卓开发基础-安卓四大组件1
  • DataGrip在Windows和MacOS平台上的快捷键
  • 如何导入数据库时将ID也导入进去
  • 【推广】图书|2024新书《大模型RAG实战:RAG原理、应用与系统构建》汪鹏、谷清水、卞龙鹏等,机械工业出版社
  • 地平线占用预测 FlashOcc 参考算法-V1.0
  • 彩漩科技亮相企业出海峰会,展示智能办公新力量
  • 图解Redis 01 | 初识Redis
  • 网络爬虫Request静态页面数据获取
  • 有关shell指令练习2
  • Redis的持久化和高可用性