U-SQL’s logical AND operator performs a conjunction of two Boolean expressions and returns false if at least one of the two expression is false and returns true if both expressions are true. Unlike the equivalent C# && expression, AND will not preserve the execution order and will not short-cut the expression evaluation.

When more than one logical operator is used in an expression, AND operators bind stronger than OR and weaker than NOT. Parentheses can be used to change the binding precedence.


AND_Expression :=                                                                                        
      Boolean_Expression 'AND' Boolean_Expression.


  • Boolean_Expression
    The two Boolean expressions to be combined that return a not-null value of type bool.

Return Type



  • The examples can be executed in Visual Studio with the Azure Data Lake Tools plug-in.
  • The scripts can be executed locally. An Azure subscription and Azure Data Lake Analytics account is not needed when executed locally.
@data  = 
        (1, "Noah",   100, (int?)10000, new DateTime(2012,05,31)),
        (2, "Sophia", 100, (int?)15000, new DateTime(2012,03,19)),
        (3, "Liam",   100, (int?)30000, new DateTime(2014,09,14)),
        (6, "Emma",   200, (int?)8000,  new DateTime(2014,03,08)),
        (7, "Jacob",  200, (int?)8000,  new DateTime(2014,09,02)),
        (8, "Olivia", 200, (int?)8000,  new DateTime(2013,12,11)),
        (9, "Mason",  300, (int?)50000, new DateTime(2016,01,01)),
        (10, "Ava",   400, (int?)15000, new DateTime(2014,09,14)),
        (11, "Ethan", 400, (int?)null,  new DateTime(2015,08,22))
        ) AS T(EmpID, EmpName, DeptID, Salary, StartDate);

@result =
    SELECT * FROM @data
    WHERE DeptID == 100 AND Salary > 10000;

OUTPUT @result TO "/ReferenceGuide/Operators/Logical/And1.txt" USING Outputters.Csv();

// alternative
@result =
    SELECT * FROM @data
    WHERE DeptID == 100 && Salary > 10000;

OUTPUT @result TO "/ReferenceGuide/Operators/Logical/And2.txt" USING Outputters.Csv();

See Also