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

Teradata SQL Assistant中Like运算符匹配_0结尾ID结果异常问题

问题原因

在Teradata SQL的LIKE运算符语法中,_是内置的单字符通配符,作用是匹配任意1个字符,而非普通的下划线字面量。
你写的查询条件id like '%_0'实际的匹配逻辑是:

  • 开头可以是任意长度的任意字符(%通配符的作用)
  • 结尾倒数第二位是任意1个字符(_通配符的作用)
  • 结尾最后一位是字符0

你给出的三个id值都符合这个逻辑:

  • 23_0:倒数第二位是_、最后一位是0,匹配
  • 111_10:倒数第二位是1、最后一位是0,匹配
  • 201_540:倒数第二位是4、最后一位是0,匹配
    因此会返回全部三条数据。
解决方案
  • 方案1:对下划线进行转义,指定转义字符将_识别为普通字面量
select * from A 
where id like '%\_0' escape '\'

这里用ESCAPE关键字指定\为转义符,\_就会被识别为普通的下划线字符,只会匹配以_0结尾的id值。

  • 方案2:直接截取末尾两位做精确匹配,避开通配符逻辑
select * from A 
where right(id, 2) = '_0'

这个方案逻辑更直观,不需要处理通配符转义规则,执行效率和方案1基本一致。

内容的提问来源于stack exchange,提问作者Mado.h

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:36:02