Sql de>?是否有允许您匹配2的规则?因为如果它只是行排序,那么您需要有一些东西来进行排序。仅仅从上到下读取这两个表是不够的,因为Oracle内部并没有以特定的或确定性的顺序存储行。行可能按照Oracle插入它们的顺序返回。我在我的回答中发布了你想要的问题。但

Sql de>?是否有允许您匹配2的规则?因为如果它只是行排序,那么您需要有一些东西来进行排序。仅仅从上到下读取这两个表是不够的,因为Oracle内部并没有以特定的或确定性的顺序存储行。行可能按照Oracle插入它们的顺序返回。我在我的回答中发布了你想要的问题。但,sql,database,oracle,relational-database,database-schema,Sql,Database,Oracle,Relational Database,Database Schema,de>?是否有允许您匹配2的规则?因为如果它只是行排序,那么您需要有一些东西来进行排序。仅仅从上到下读取这两个表是不够的,因为Oracle内部并没有以特定的或确定性的顺序存储行。行可能按照Oracle插入它们的顺序返回。我在我的回答中发布了你想要的问题。但我出于同情告诉你,万一你正在处理的是我的银行:),这很可能在更大的数据集上不起作用。我想知道你为什么不使用Oracle掩蔽和列安全选项?客户端ID不同,表1和表2上的一切都不同。在表1中,我有真实的数据,在表2中,所有的数据都是隐藏的,没有匹配


de>?是否有允许您匹配2的规则?因为如果它只是行排序,那么您需要有一些东西来进行排序。仅仅从上到下读取这两个表是不够的,因为Oracle内部并没有以特定的或确定性的顺序存储行。行可能按照Oracle插入它们的顺序返回。我在我的回答中发布了你想要的问题。但我出于同情告诉你,万一你正在处理的是我的银行:),这很可能在更大的数据集上不起作用。我想知道你为什么不使用Oracle掩蔽和列安全选项?客户端ID不同,表1和表2上的一切都不同。在表1中,我有真实的数据,在表2中,所有的数据都是隐藏的,没有匹配的。这就是为什么我有这个问题,我没有什么可以加入的。表1中的所有数据与表2中的所有数据完全不同。这就是掩蔽的重点。屏蔽后数据不得保持不变,否则可能导致实际客户的身份。表1中的所有内容与表2中的所有内容不同。然而,不知何故,我必须找到一种方法来匹配两个表中的行,我可以这样做,但多次使用“从表1,表2中选择表1.column1,表2.column1;”-这给了我想要的结果,但还有很多我不需要的结果。好的。你给我解释得很好。为表1和表2创建两个临时表。添加第一个表中的所有列以及第_NUMBER()行的列。对第二个表执行相同操作。根据ROW_NUMBER()列将它们连接起来。我正试图尽快发布代码。希望这会有所帮助。让我们看看hi@Robert,我已经用一个示例代码更新了答案。如果这对你有用,我会很高兴的。甲骨文没有什么不可能的。如果这不起作用,让我进一步帮助您,或者请将其标记为答案。我不熟悉您在代码中使用的概念,我必须回到家中,对其进行更详细的了解。与此同时,我已经编辑了我的原始文章,请看文章的结尾,谢谢。从您更新的代码来看,两个公共表中都有一个名为rownum的列。我错了吗?如果rownum是常见的,我会要求您尝试使用此查询
从table1内部连接table2中选择table1.column1、table2.column2到table1.rownum=table2.rownum
Table1中的row1 ID与Table2中的row1 ID不同,因此您正确地预测了它不会与该查询一起工作。解决方案确实是克隆原始表,并将一列与屏蔽表共同放置,以便有一些连接。谢谢你的时间我很高兴听到你这么说:)我错了。您在EDIT1中提供的解决方案是正确的。我已经在100000行数据集上测试了几个小时。所有行绝对匹配。Rownum不会以任何方式更改实际行数。先生,你解决了我的问题。非常感谢。我不熟悉您在代码中使用的概念,我必须回到家中,对其进行更详细的了解。在此期间,我编辑了我的原创文章,请看文章的结尾,谢谢。我没有什么可加入的,这两个表格完全不同。对不起,我在原来的帖子里没有说清楚。
 I will elaborate in case it isn't clear to someone:
 ___________________

 -What I want to do, is to put 2 columns one next to each other:
    -table1.column1
    -table2.column1

  So the result would be something like this:
   table1.column1.ROW1 - table2.column1.ROW1
   table1.column1.ROW2 - table2.column1.ROW2
   table1.column1.ROW3 - table2.column1.ROW3
   table1.column1.ROW4 - table2.column1.ROW4
   table1.column1.ROW5 - table2.column1.ROW5
   ..etc..
 ___________________
SELECT table1.column1, table2.column1 FROM table1
INNER JOIN table2 ON table2.ClientID = table1.ClientID
create table table1(column1 varchar(255),column2 varchar(255));
insert into table1(column1,column2)values('a','a1');

--create temp table1
create GLOBAL TEMPORARY TABLE temp1(rownumber int,column1,column2);
insert into temp1 select Row_Number() Over(order by column1),column1,column2 from table1;

--create table2    
create table table2(column1 varchar(255),column2 varchar(255));
insert into table2(column1,column2)values('b','b1');

--create temp table2    
create GLOBAL TEMPORARY TABLE temp2(rownumber int,column1,column2);
insert into temp2 select Row_Number() Over(order by column1),column1,column2 from table1;

--join based on rownumber
select temp1.column1,temp2.column1 from temp1 join temp2 on temp1.rownumber=temp2.rownumber; 
select t1.*, t2.*
from t1
join t2 on t2.Id = t1.Id
select t1.*, t2.*
from (select rownum as rn, t.* from table1 t) t1
join (select rownum as rn, t.* from table2 t) t2
  on t2.rn = t1.rn
CREATE TABLE random1 ( ID1, VALUE1 ) AS
          SELECT 1, 20 FROM DUAL
UNION ALL SELECT 5, 32 FROM DUAL
UNION ALL SELECT 3, 5 FROM DUAL;

CREATE TABLE random2 ( ID2, VALUE2 ) AS
          SELECT 6, 17 FROM DUAL
UNION ALL SELECT 4, 10 FROM DUAL
UNION ALL SELECT 2, 7 FROM DUAL;
SELECT ID1,
       ID2,
       VALUE1 - VALUE2 AS difference
FROM   ( SELECT ID1,
                VALUE1,
                ROW_NUMBER() OVER ( ORDER BY NULL ) AS RN
         FROM   RANDOM1 ) a
       INNER JOIN
       ( SELECT ID2,
                VALUE2,
                ROW_NUMBER() OVER ( ORDER BY NULL ) AS RN
         FROM   RANDOM2 ) b
       ON  ( a.RN = b.RN )
| ID1 | ID2 | DIFFERENCE |
|-----|-----|------------|
|   1 |   6 |          3 |
|   5 |   4 |         22 |
|   3 |   2 |         -2 |
SELECT ID1,
       ID2,
       VALUE1 - VALUE2 AS difference
FROM   ( SELECT ID1,
                VALUE1,
                ROWNUM AS RN
         FROM   RANDOM1 ) a
       INNER JOIN
       ( SELECT ID2,
                VALUE2,
                ROWNUM AS RN
         FROM   RANDOM2 ) b
       ON  ( a.RN = b.RN )
| ID1 | ID2 | DIFFERENCE |
|-----|-----|------------|
|   1 |   6 |          3 |
|   5 |   4 |         22 |
|   3 |   2 |         -2 |