如何跳过 like %% 子句中的“_”,Sybase IQ

How to skip the "_" in like %% clausure , Sybase IQ

任务:找到所有以"vf_"

开头的视图

代码应该是:

 select * from systable where table_type = 'VIEW' and table_name like 'vf_%'

问题是数据库像小丑一样使用“_”,这意味着在“_”中可能出现每个符号。

这就是为什么要回我

vf_
vfa
vfg
..
..

我怎么能对数据库说我只想要 "vf_" 开始的视图?

如果您愿意,请使用 escape 选项:

table_name like 'vf$_%' escape '$'

有一个默认的转义字符,反斜杠:

table_name like 'vf\_%'

然而,多年来在基于 Windows 和基于 Unix 的操作系统之间移动让我对反斜杠非常警惕。

还有其他选择,例如:

left(table_name, 3) = 'vf_'

除了 Gordon 关于使用转义符的建议之外...

您可以通过将下划线放在一对方括号内来搜索下划线作为字符串(而不是通配符),例如:

select * from systable where table_type = 'VIEW' and table_name like 'vf[_]%'