我想选择所有在第11个字符中都有下划线字符的记录, 所以我试试这个:
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '%%%%%%%%%%_%%%'
但这没有按预期工作,有人可以帮忙吗?
答案 0 :(得分:15)
只需使用“SUBSTRING”功能:
SELECT * FROM "BOM_SUB_LEVEL" where SUBSTRING(TOP_CODE, 11, 1) = "_"
马克
答案 1 :(得分:11)
对于单个字符通配符,请使用_
。对于多个字符通配符,请使用%
。要逃避_
的“真实”外观,请使用\_
(感谢比尔!)。
请尝试以下代码:
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '___________\_%'
要进一步详细说明Dav的评论,请注意'%%%'与'%'完全相同,因为根据定义'%'涵盖多个字符。
答案 2 :(得分:2)
pervasive使用_来匹配任何单个字符,使用\ _来实际匹配下划线。
所以选择将是:
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '___________\_%'
答案 3 :(得分:1)
LIKE%可以表示任意数量的字符,使用LIKE _表示只有一个字符。既然你正在寻找一个下划线,你需要用它来逃避!。
SELECT * FROM BOM_SUB_LEVEL WHERE TOP_CODE LIKE '__________!_%'
答案 4 :(得分:0)
%不是每个字符的通配符,它是字符串通配符的开头和结尾。
即。如果我想找到所有包含“car”的行,我会这样做:
从myTable中选择*,其中myCol LIKE'%car%'
如果我只想要开车的行:
从myTable中选择*,其中myCol LIKE'car%'
以汽车结束:
从myTable中选择* myCol LIKE'%car'
答案 5 :(得分:0)
%是通配符,可以替换字符或字符组合。使用 ?相反,它取代了一个字符。
答案 6 :(得分:0)
你可以尝试类似的东西:(玩数字,我没有普遍的测试)
SELECT *
FROM BOM_SUB_LEVEL
where SUBSTRING(TOP_CODE, 11,1) = '-'