如何跳过 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[_]%'
任务:找到所有以"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[_]%'