【问题标题】:How do I escape _ in SQL Server? [duplicate]如何在 SQL Server 中转义 _? [复制]
【发布时间】:2010-02-19 23:21:14
【问题描述】:

我正在尝试转义 LIKE 语句中的下划线字符。我尝试使用ESCAPE 关键字如下:

COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'

但它不起作用。当我真的希望它过滤掉 %_xyz% 时,它仍在过滤掉 %xyz%

如果不是通过ESCAPE 关键字,那还怎么实现呢?

感谢任何帮助。

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    这应该可以工作:

    COLUMNNAME NOT LIKE '%[_]xyz%'
    

    这里不需要 ESCAPE。你写的应该也行。

    如果你确实想使用 ESCAPE,你可以这样做:

    columnname NOT LIKE '%\_xyz%' ESCAPE '\';
    

    转义字符的文档是here

    【讨论】:

    • 谢谢,这行得通。我不知道为什么它以前不起作用,但现在非常感谢。
    【解决方案2】:

    使用括号 [_]

    这适用于我在 SQL Server 2005 中

    select *
    from #table 
    where a like '%[_]xyz%'
    

    【讨论】:

    【解决方案3】:

    不带括号试试:

    COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      相关资源
      最近更新 更多