2017-05-01 29 views

回答

2

U-SQL是一种声明式查询语言,目前只允许您使用IF语句(此时的IF语句在编译时执行)基于值更改控制流。

你想在不同的IF分支中做什么?

现在取决于你想要的IF子句中做什么,你有不同的选择:

  1. 将您的IF条件进入查询谓词(例如,

    @res = 
        SELECT a, b, c FROM @x WHERE condition 
        UNION ALL 
        SELECT a, b, c FROM @y WHERE !condition; 
    

    ,而不是

    IF (condition) THEN 
        @res = SELECT a, b, c FROM @x; 
    ELSE 
        @res = SELECT a, b, c FROM @y; 
    END; 
    

    如果您的条件取决于不同的表格,则可能需要执行(交叉)连接以获得相关的条件。

  2. 分割你的脚本成更小的脚本,并使用自动进稿器或PowerShell的控制流。这可能意味着你创建了你下载的中间结果,所以我通常更喜欢1.

  3. 最后但并非最不重要:通常可能有一种声明方式来表达你的逻辑,它可以避免条件。

+0

谢谢迈克尔,那帮助。 – lidong