【问题标题】:How do I escape a percentage sign in T-SQL?如何在 T-SQL 中转义百分号?
【发布时间】:2011-11-03 17:19:58
【问题描述】:

这个question also has the answer,但它特别提到了 DB2。

如何使用LIKE 搜索已包含百分比% 符号的字符串LIKE 运算符使用% 符号来表示通配符。

【问题讨论】:

    标签: sql-server tsql


    【解决方案1】:

    使用括号。所以要寻找 75%

    WHERE MyCol LIKE '%75[%]%'
    

    这比 ESCAPE 更简单,并且对大多数 RDBMS 来说很常见。

    【讨论】:

    【解决方案2】:

    您可以将ESCAPE 关键字与LIKE 一起使用。只需将所需字符(例如“!”)添加到字符串中的每个现有 % 符号,然后将 ESCAPE '!'(或您选择的字符)添加到查询的末尾。

    例如:

    SELECT *
    FROM prices
    WHERE discount LIKE '%80!% off%'
    ESCAPE '!'
    

    这将使数据库将 80% 视为要搜索的字符串的实际部分,而不是 80(通配符)。

    MSDN Docs for LIKE

    【讨论】:

      【解决方案3】:
      WHERE column_name LIKE '%save 50[%] off!%'
      

      【讨论】:

        【解决方案4】:

        您可以使用下面的代码来查找特定值。

        WHERE col1 LIKE '%[%]75%'
        

        当你想要%符号后的一位数时,你可以写如下代码。

        WHERE col2 LIKE '%[%]_'
        

        【讨论】:

          【解决方案5】:

          在 MySQL 中

          WHERE column_name LIKE '%|%%' ESCAPE '|'

          【讨论】:

          • 但问题是关于 T-SQL 的。
          • OP 确实询问了 tsql,但是当我对如何使用 SQL 进行一般搜索时,Google 把我带到了这里,所以从搜索引擎的角度来看,这个答案很有帮助.此方法也适用于 Firebird,仅供参考。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-08
          • 1970-01-01
          • 1970-01-01
          • 2017-03-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多