返回首页

gbase数据、南大通用产品文档:GBase8aMAKE_SET(bits,str1,str2,)

更新日期:2024年09月11日

函数说明
返回一个设定值(是由“,”分开的str 组成的字符串),由相应位在bits 集合中
为1 的字符串组成,bits 中的比特值按照从右到左的顺序接受检验(由低比特位到
高比特位)。如果str1 对应第一位比特值为1,str2 对应第二位比特值为1,就返
回str1,str2。以此类推,str1,str2,...中的NULL 值不会被添加到结果中。
示例
示例1:将1 的比特值按从右到左进行校验,“a”对应第一位比特值为1。
gbase> SELECT MAKE_SET(1,'a','b','c') FROM dual;
+-------------------------+
| MAKE_SET(1,'a','b','c') |
+-------------------------+
| a
|
+-------------------------+
1 row in set
示例2:将1 和4 进行或运算,获得0101 的比特值,按从右到左进行校验,即第
一位和第三位的比特值为1,返回str1 和str3 字符串。
gbase> SELECT MAKE_SET(1 | 4,'hello','nice','world') FROM dual;
+----------------------------------------+
| MAKE_SET(1 | 4,'hello','nice','world') |
+----------------------------------------+
| hello,world
|
+----------------------------------------+
1 row in set
示例3:字符串列中的NULL 不被添加到结果中。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
701
gbase> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world') FROM dual;
+---------------------------------------------+
| MAKE_SET(1 | 4,'hello','nice',NULL,'world') |
+---------------------------------------------+
| hello
|
+---------------------------------------------+
1 row in set
示例4:0 没有对应的str。
gbase> SELECT MAKE_SET(0,'a','b','c') FROM dual;
+-------------------------+
| MAKE_SET(0,'a','b','c') |
+-------------------------+
|
|
+-------------------------+
1 row in set

优化特性:

当a LEFT JOIN b 中,
b 表的WHERE 条件中包含有字段的非NULL 判断条
件时,LEFT JOIN 能够转换成INNER JOIN,从而提高查询优化的性能;

当a RIGHT JOIN b 中,a 表的WHERE 条件中包含有字段的非NULL 判断
条件时,RIGHT JOIN 能够转换成INNER JOIN,从而提高查询优化的性能。

geqo_seed
参数说明:控制GEQO 使用的随机数生产器的初始化值,用来从顺序连接在一起的查
询空间中查找随机路径。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:浮点型,0.0~1.0。
须知:
不同的值会改变搜索的连接路径,从而影响了所找路径的优劣。
默认值:0