检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
null条件替换。此时SQL变为: 1 2 3 select a, c from t1 left join (select avg(a) avg, t3.b from t3 group by t3.b) as t3 on (t1.a = avg and t1.b = t3.b) where t3.b is not
| | 12 | 752.75 3 | -> HashAggregate | [63.974,71.290] | 40000 | 10000 | [3MB,3MB] | 16MB | [20,20] |
经验总结:SQL语句改写规则 根据数据库的SQL执行机制以及大量的实践,总结发现:通过一定的规则调整SQL语句,在保证结果正确的基础上,能够提高SQL执行效率。如果遵守这些规则,常常能够大幅度提升业务查询效率。 使用union all代替union union在合并两个集合时会执行去重操作,而union
案例:建立合适的索引 现象描述 查询与销售部所有员工的信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 --建表 CREATE TABLE staffs (staff_id NUMBER(6)
pg_type REGTYPE pg_type 数据类型名。 integer OID类型:主要作为数据库系统表中字段使用。 示例: 1 2 3 4 5 gaussdb=# SELECT oid FROM pg_class WHERE relname = 'pg_type'; oid
逻辑操作符 常用的逻辑操作符有AND、OR和NOT,他们的运算结果有三个值,分别为TRUE、FALSE和NULL,其中NULL代表未知。他们运算优先级顺序为:NOT>AND>OR。 运算规则请参见表1,表中的a和b代表逻辑表达式。 表1 运算规则表 a b a AND b的结果 a
返回布尔类型数值。 不等号的计算优先级高于等号。当输入的数据类型不同且无法隐式转换时,比较操作将会失败。例如像1<2<3这样的表达式是非法的,因为布尔值和3之间无法用小于号(<)比较。 另外,上述每种操作符在pg_proc系统表中都有对应的函数,如果其对应的函数的属性prole
expr还支持可以隐式转换为字符类型的数值类型。 返回值类型:float8 示例: 1 2 3 4 5 gaussdb=# SELECT to_binary_double('1,2,3', '9,9,9'); to_binary_double ------------------
DROP FOREIGN DATA WRAPPER 功能描述 删除指定的外部数据封装。 注意事项 只有在support_extended_features=on时才能够成功执行drop语句。 语法格式 DROP FOREIGN DATA WRAPPER [ IF EXISTS ]
ker进程数,入参为3时杀死所有worker进程。 返回值类型:text fenced_udf_process(integer) 描述:查看本地UDF Master和Work线程数。入参为1时查看master线程数,入参为2时查看worker线程数,入参为3时终止所有worker线程。
触发器函数 pg_get_triggerdef(oid) 描述:获取触发器的定义信息。 参数:待查触发器的OID。 返回值类型:text -- 创建表tri_insert。 gaussdb=# CREATE TABLE tri_insert (a int, b int) distribute
提示信息函数 report_application_error() 描述:PL执行过程中,可以使用此函数来抛ERROR。 返回值类型:void 表1 report_application_error参数说明 参数 类型 说明 是否必选 log text error消息的内容。 是
hotkey特性函数 gs_stat_get_hotkeys_info() 描述:获取本地节点查询的热词信息。 返回值类型:Tuple 示例: 1 2 3 4 5 6 gaussdb=# select * from gs_stat_get_hotkeys_info() order by count
0 | | 1260 | pg_authid | 11 | (0, 3) | (0, 3) | 2313 | 26 | 2465837659 | 1 0 |
[wellformed]) 描述:使用函数xmlparse,从字符数据产生XML类型的值。 参数:数据类型为text。 返回值类型:XML 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 gaussdb=# SELECT XMLPARSE (DOCUMENT
------ 3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D2255544638223F3E0A3C6173642F3E (1 row) xmltype().func()方式: 1 2 3 4 5 gaussdb=#
是布尔值。 示例如下: 1 2 3 4 5 gaussdb=# SELECT 8000+500 < SOME (array[10000,9000]) AS RESULT; result ---------- t (1 row) 1 2 3 4 5 gaussdb=# SELECT
未知的(null)。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 gaussdb=# SELECT (1,2,3) = (1,2,3) AS result; result --------
对象中的权限)。 注意事项 目前只支持表(包括视图)、序列、函数,类型,密态数据库客户端主密钥和列加密密钥的权限更改。 语法格式 1 2 3 4 ALTER DEFAULT PRIVILEGES [ FOR { ROLE | USER } target_role [, .
resource_type 指的是要标记的数据库资源类型。 resource_path 指的是描述具体的数据库资源的路径。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 --创建基本表table_for_label。 gaussdb=#