U-SQL 提供 LIKE T-SQL 中熟悉 的 和 NOT LIKE 比较运算符,用于检查 字符串 值是否与简单模式匹配。 模式可以包含常规字符和通配符。 在模式匹配期间,常规字符必须与 字符串 中指定的字符完全匹配。 但是,通配符可以与 字符串 的任意片段匹配。 请注意,比较是使用 UTF-8 字节级比较的区域性固定 字符串 比较完成的。

LIKE_Expression := string_expression [' NOT '] 'LIKE' Pattern [ 'ESCAPE' char_expression ]。
Pattern := string_expression .
  • string_expression
    是创建要测试的字符串值的表达式。

  • Pattern
    是一个字符串表达式,提供要测试的模式。 LIKE 中的模式可以包含以下有效的通配符。

    指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE lname LIKE '[C-P]arsen' 查找姓氏以 arsen 结尾且以 C 和 P 之间的任意单个字符开头的所有行,例如 Carsen、Larsen、Karsen 等。 在范围搜索中,范围中包含的字符由使用 UTF-8 字节排序的区域性固定排序顺序确定。 不在指定范围内的任何单个字符 ([^a-f]) 或设置 WHERE lname LIKE 'de[^l]%' 查找姓氏以 de 开头且以下字母不为 l 的所有行。
  • ESCAPE char_expression
    可以选择性地指定 char 类型的非 null 值,该值可用于转义任何通配符。 它放在通配符前面,以指示通配符应解释为常规字符,而不是通配符。

  • 可以使用 Azure Data Lake 工具插件 在 Visual Studio 中执行这些示例。
  • 可以在 本地 执行脚本。 在本地执行时,不需要 Azure 订阅和 Azure Data Lake Analytics帐户。
  • @data  = 
        SELECT * FROM 
            (VALUES  
            ("Carsen",      "Engineer"),
            ("Larsen",      "engineer"),
            ("Karsen",      "some%value"),
            ("Barbariol",   "somevalue"),
            ("Barber",      "some_value"),
            ("Olivia",      "someXvalue")
            ) AS T(col1, col2);
    // Change "LIKE" to "NOT LIKE" for NOT LIKE examples
    @result =
        SELECT * FROM @data
        WHERE col1 LIKE "_arsen";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like1.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col1 LIKE "[C-K]arsen";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like2.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col1 LIKE "Barb%";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like3.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col2 LIKE "Engineer";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like4.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col2 LIKE "[eE]ngineer";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like5.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col2 LIKE "some%value";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like6.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col2 LIKE "some|%value" ESCAPE '|';
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like7.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col2 LIKE "some_value";
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like8.txt" USING Outputters.Tsv();
    @result =
        SELECT * FROM @data
        WHERE col2 LIKE "some$_value" ESCAPE '$';
    OUTPUT @result TO "/ReferenceGuide/Operators/Logical/Like9.txt" USING Outputters.Tsv();
    
  • U-SQL) (比较运算符
  • BETWEEN (U-SQL)
  • IN,NOT in (U-SQL)
  • C# 运算符
  •