Sql 交叉联接和交叉联接表之间的区别是什么
在以下代码中:Sql 交叉联接和交叉联接表之间的区别是什么,sql,oracle,join,Sql,Oracle,Join,在以下代码中: SELECT ... FROM ... CROSS JOIN TABLE ... WHERE ...; 交叉联接表是什么意思 我在网上搜索过,但我能找到的只是交叉连接 我假设交叉联接表作用于一个表,意思是这样一个表: CREATE OR REPLACE ... AS TABLE OF ...; 以下是完整的查询: SELECT prog.id_oct_prog_tran_a_participati, prog.code_ressource, prog.instant_depa
SELECT ... FROM ... CROSS JOIN TABLE ... WHERE ...;
交叉联接表是什么意思
我在网上搜索过,但我能找到的只是交叉连接
我假设交叉联接表作用于一个表,意思是这样一个表:
CREATE OR REPLACE ... AS TABLE OF ...;
以下是完整的查询:
SELECT prog.id_oct_prog_tran_a_participati, prog.code_ressource, prog.instant_depart, prog.commentaire, prog.en_hors_economie_de_comb, discr.delai, discr.valeur_point, MOD(delai, 60) AS H24
FROM req_prog prog
CROSS JOIN TABLE(POINTS_DISCRETS(pIdChronique=>id_chr_substitution)) discr
WHERE horizon <= 'J1'
AND delai > 0
ORDER BY id_oct_prog_tran_a_participati, instant_depart, horizon, delai
其中,TYPE\u POINT
是按以下方式创建的类型:
create or replace TYPE "TYPE_TAB_POINT" AS TABLE OF TYPE_POINT;
create or replace TYPE "TYPE_POINT" AS OBJECT
(
ID_CHRONIQUE NUMBER,
HORIZON VARCHAR2(2),
NUM_POINT NUMBER(4),
DELAI NUMBER(5),
VALEUR_POINT FLOAT
);
所以,正如您在这里看到的,交叉连接表
作用于一个表,而不是我们通常在数据库中所说的表,更像是一个数组
是这样吗?如果是的话,它怎么能被认为是一个真正的表呢?您对语句的分析不正确,我想这会让您感到困惑<代码>交叉连接表不是一个片段;它是一个
交叉连接
(但可以是任何连接类型),位于实际表req\u prog
和单独的表(…)
之间,用于告诉查询将函数调用的返回值视为一个表
表(…)
是:
通过表集合表达式,您可以通知Oracle集合表达式的值应作为表处理,以便进行查询和DML操作。集合表达式可以是子查询、列、函数或集合构造函数
这里的POINTS\u DISCRETS
是集合构造函数-返回TYPE\u TAB\u POINT
,这是一个集合,其中大部分是您已经计算出来的
在本例中,您的集合是一个对象表,将其视为一个表,这样您就可以连接并引用构成每个“行”的对象的属性,就像它是一列一样。
TABLE()
别名为discr
,因此您可以参考discr.delai
——其中delai
是类型点的属性之一。如果使用的是内部联接或外部联接,而不是交叉联接,则在联接条件中使用相同的构造,例如discr.x=prog.x上的。应用表集合表达式后,只需在语句的其余部分将其视为一个表。您对语句的分析不正确,我认为这会让您感到困惑<代码>交叉连接表
不是一个片段;它是一个交叉连接
(但可以是任何连接类型),位于实际表req\u prog
和单独的表(…)
之间,用于告诉查询将函数调用的返回值视为一个表
表(…)
是:
通过表集合表达式,您可以通知Oracle集合表达式的值应作为表处理,以便进行查询和DML操作。集合表达式可以是子查询、列、函数或集合构造函数
这里的POINTS\u DISCRETS
是集合构造函数-返回TYPE\u TAB\u POINT
,这是一个集合,其中大部分是您已经计算出来的
在本例中,您的集合是一个对象表,将其视为一个表,这样您就可以连接并引用构成每个“行”的对象的属性,就像它是一列一样。TABLE()
别名为discr
,因此您可以参考discr.delai
——其中delai
是类型点的属性之一。如果使用的是内部联接或外部联接,而不是交叉联接,则在联接条件中使用相同的构造,例如discr.x=prog.x上的。应用表集合表达式后,只需在语句的其余部分将其视为表。请发布我们的完整查询?我编辑了我的问题。有什么想法吗?它不是交叉连接表
它是一个交叉连接
,带有表(…)
表达式。请发布我们的完整查询?我编辑了我的问题。有什么想法吗?它不是交叉连接表
它是一个交叉连接
,带有表(…)
表达式。谢谢,完全理解!谢谢,完全理解!