Azure U-Sql不允许非等联接

Azure U-Sql不允许非等联接,azure,u-sql,Azure,U Sql,我偶然发现了U-SQL的一些问题,对我来说,这是一个我还没有找到解决方法的问题 似乎U-SQL除了在联接中支持==之外不支持其他任何东西,所以不能在联接本身中放置>或

我偶然发现了U-SQL的一些问题,对我来说,这是一个我还没有找到解决方法的问题

似乎U-SQL除了在联接中支持==之外不支持其他任何东西,所以不能在联接本身中放置>或<

对于我在oracle中完成的以下用例:

create table trf.test_1(
number_col int
);


insert into trf.test_1 VALUES (10);
insert into trf.test_1 VALUES (20);
insert into trf.test_1 VALUES (30);
insert into trf.test_1 VALUES (60);

drop table trf.test_2;
create table trf.test_2(
number_col int
);


insert into trf.test_2 VALUES (20);
insert into trf.test_2 VALUES (30);


SELECT t1.number_col, t2.number_col

FROM trf.test_1 t1
LEFT JOIN trf.test_2 t2 ON t1.number_col < t2.number_col
;
创建表trf.test_1(
数字列
);
插入trf.test_1值(10);
插入trf.test_1值(20);
插入trf.test_1值(30);
插入trf.test_1值(60);
升降台trf.test_2;
创建表trf.test_2(
数字列
);
插入trf.test_2值(20);
插入trf.test_2值(30);
选择t1.number\u列,t2.number\u列
来自trf.test_1 t1
左连接trf.test_2 t2在t1.number_列
我得到以下信息:

在没有 我尝试了交叉连接,但是如果在where子句中包含<,它只会变成一个内部连接,而不会得到带null的行

任何想法都值得赞赏

@t1 = 
     SELECT * FROM 
     ( VALUES
     (10),
     (20),
     (30),
     (60)
     ) AS T(num_col);

@t2 = 
 SELECT * FROM 
     ( VALUES
     (20),
     (30)
     ) AS T(num_col);

@result =
    SELECT t1.num_col, t2.num_col AS num_col_2
    FROM @t1 AS t1
     CROSS JOIN @t2 AS t2
  WHERE t1.num_col < t2.num_col;

 @result2 = 
 SELECT t1.num_col, t2.num_col AS num_col_2
 FROM @t1 AS t1
  LEFT JOIN @result AS t2 ON t1.num_col == t2.num_col;

 OUTPUT @result2
 TO "/Output/ReferenceGuide/Joins/exampleA.csv"
 USING Outputters.Csv();
@t1=
从中选择*
(价值观
(10),
(20),
(30),
(60)
)AS T(num_col);
@t2=
从中选择*
(价值观
(20),
(30)
)AS T(num_col);
@结果=
选择t1.num\u col,t2.num\u col作为num\u col\u 2
从@t1到t1
交叉连接@t2为t2
其中t1.num\u col

编辑-我将@t1数据集中的左连接添加回@result集,这似乎很有效,但如果有更好的解决方案,我会很感兴趣。这是一个已知的特性,在文章“”中进行了广泛讨论

那篇文章的一些引语:

加入比较

U-SQL,就像大多数扩展的大数据查询语言一样 如果支持联接,则将联接比较限制为相等 要联接的行集中列之间的比较

如果比较中存在非相等比较或更复杂的表达式(如方法调用),则可以将比较移动到SELECT的WHERE子句。或者,可以将更复杂的表达式放在前面的SELECT语句的列中,然后在联接比较中引用该别名


基本上,在像ADLA这样的分布式平台上,它们的扩展性不是特别好。

谢谢你,很高兴知道原因。我会用我找到的工作。