【问题标题】:SQL Server PATINDEX returning a value when it shouldn't [closed]SQL Server PATINDEX 在不应该返回一个值时 [关闭]
【发布时间】:2020-05-01 15:43:12
【问题描述】:

Azure SQL Server 2017

Status字段值:

1796-NM_IndiatimesMumbai_Daily has run

声明:

PATINDEX('%[MED]%', Status COLLATE SQL_Latin1_General_CP1_CS_AS)

返回

7

为什么?我以为我正在寻找一个完全匹配的“MED”,全部大写,所以我期望 0。我的模式语法显然不正确。

【问题讨论】:

  • 去掉括号[]
  • SQL Server 文档对此非常非常清楚。
  • 方括号表示一个范围或集合。因为您只是在寻找子字符串而不是模式,所以无论如何我都会使用 CHARINDEX

标签: sql-server patindex


【解决方案1】:

因为 like 与方括号 [] 结合起来搜索括号之间的任何字符。你是不是去掉括号 喜欢“%MED%”

效果如你所愿

【讨论】:

    猜你喜欢
    • 2022-11-19
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多