You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何精确匹配workId字段的指定子串?

解决方法

方法1:精确匹配(最直接)

如果你明确要查询的是G2/2018/2345,直接用等于号匹配即可,不需要like:

select * from u_table as s where s.workId = 'G2/2018/2345';

方法2:匹配以2345结尾的记录

如果需要匹配所有以2345结尾的workId,可以用%2345(仅前缀用通配符),这样只会匹配结尾是2345的记录,不会误匹配中间包含2345的项:

select * from u_table as s where s.workId like '%2345';

方法3:精准匹配最后一段为2345的记录

结合workId的格式(前缀/年份/编号),用%/2345可以更精准地匹配最后一段是2345的记录,避免出现类似XXX2345(无斜杠前缀)的误匹配:

select * from u_table as s where s.workId like '%/2345';

为什么之前的语句无效?

  • 原语句like '%2345%'会匹配任何位置包含2345的字符串,W1/2009/12345里的12345包含2345,所以会被选中。
  • 加not like '_2345'没用,因为_只匹配单个字符,而W1/2009/12345的结尾是12345,并不符合_2345的模式(单个字符+2345),这条过滤条件对它无效。

内容的提问来源于stack exchange,提问作者Amit Kaushal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:35:26