返回首页

gbase数据、南大通用产品文档:GBase8s处理单行结果集

更新日期:2024年09月11日

如果希望查询只返回一行,可以使用SELECT INTO语句存储该行的值到一个或多个变
量中或到一个记录变量中;如果返回可能是多行,而你只关心第n行,则可以使用where
ROWNUM 来限制结果集。
DROP TABLE IF EXISTS t;
DROP TABLE IF EXISTS tb;
CREATE TABLE t(id INT, name VARCHAR(20));
CREATE TABLE tb(id INT, name VARCHAR(20));
INSERT INTO t VALUES(1, 'a');
INSERT INTO t VALUES(2, 'b');

CREATE OR REPLACE PROCEDURE P AS
b1 INT;
BEGIN
SELECT ID INTO b1 FROM T WHERE ID=2;
INSERT INTO TB VALUES(b1,'S');
end;


get_current_ts_config()
描述:获取文本检索的默认配置。
返回类型:regconfig
示例:
gbase=# SELECT get_current_ts_config();
get_current_ts_config
-----------------------
english
(1 row)

length(tsvector)
描述:tsvector 类型词汇的单词数。
返回类型:integer
示例:

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
268
gbase=# SELECT length('fat:2,4 cat:3 rat:5A'::tsvector);
length
--------
3
(1 row)

numnode(tsquery)
描述:tsquery 类型的单词加上操作符的数量。
返回类型:integer
示例:
gbase=# SELECT numnode('(fat & rat) | cat'::tsquery);
numnode
---------
5
(1 row)

plainto_tsquery([ config regconfig , ] query text)
描述:产生tsquery 类型的词汇,并忽略标点。
返回类型:tsquery
示例:
gbase=# SELECT plainto_tsquery('english', 'The Fat Rats');
plainto_tsquery
-----------------
'fat' & 'rat'
(1 row)

querytree(query tsquery)
描述:获取tsquery 类型的词汇可加索引的部分。
返回类型:text
示例:
gbase=# SELECT querytree('foo & ! bar'::tsquery);
querytree
-----------

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
269
'foo'
(1 row)

setweight(tsvector, “char”)
描述:给tsvector 类型的每个元素分配权值。
返回类型:tsvector
示例:
gbase=# SELECT setweight('fat:2,4 cat:3 rat:5B'::tsvector, 'A');
setweight
-------------------------------
'cat':3A 'fat':2A,4A 'rat':5A
(1 row)

strip(tsvector)
描述:删除tsvector 类型单词中的position 和权值。
返回类型:tsvector
示例:
gbase=# SELECT strip('fat:2,4 cat:3 rat:5A'::tsvector);
strip
-------------------
'cat' 'fat' 'rat'
(1 row)

to_tsquery([ config regconfig , ] query text)
描述:标准化单词,并转换为tsquery 类型。
返回类型:tsquery
示例:
gbase=# SELECT to_tsquery('english', 'The & Fat & Rats');
to_tsquery
---------------
'fat' & 'rat'
(1 row)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
270

to_tsvector([ config regconfig , ] document text)
描述:去除文件信息,并转换为tsvector 类型。
返回类型:tsvector
示例:
gbase=# SELECT to_tsvector('english', 'The Fat Rats');
to_tsvector
-----------------
'fat':2 'rat':3
(1 row)

to_tsvector_for_batch([ config regconfig , ] document text)
描述:去除文件信息,并转换为tsvector 类型。
返回类型:tsvector
示例:
gbase=# SELECT to_tsvector_for_batch('english', 'The Fat Rats');
to_tsvector
-----------------
'fat':2 'rat':3
(1 row)

ts_headline([ config regconfig, ] document text, query tsquery [, options text ])
描述:高亮显示查询的匹配项。
返回类型:text
示例:
gbase=# SELECT ts_headline('x y z', 'z'::tsquery);
ts_headline
--------------
x y z
(1 row)

ts_rank([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ])
描述:文档查询排名。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
271
返回类型:float4
示例:
gbase=# SELECT ts_rank('hello world'::tsvector, 'world'::tsquery);
ts_rank
----------
.0607927
(1 row)

ts_rank_cd([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ])
描述:排序文件查询使用覆盖密度。
返回类型:float4
示例:
gbase=# SELECT ts_rank_cd('hello world'::tsvector, 'world'::tsquery);
ts_rank_cd
------------
0
(1 row)

ts_rewrite(query tsquery, target tsquery, substitute tsquery)
描述:替换目标tsquery 类型的单词。
返回类型:tsquery
示例:
gbase=# SELECT ts_rewrite('a & b'::tsquery, 'a'::tsquery, 'foo|bar'::tsquery);
ts_rewrite
-------------------------
'b' & ( 'foo' | 'bar' )
(1 row)

ts_rewrite(query tsquery, select text)
描述:使用SELECT 命令的结果替代目标中tsquery 类型的单词。
返回类型:tsquery
示例:

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
272
gbase=# SELECT ts_rewrite('world'::tsquery, 'select ''world''::tsquery,
''hello''::tsquery');
ts_rewrite
------------
'hello'
(1 row)

30 |
7698 |