LIKE的SQL语句

时间:2009-08-13 19:20:43

标签: sql pervasive pervasive-sql

我想选择所有在第11个字符中都有下划线字符的记录, 所以我试试这个:

SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '%%%%%%%%%%_%%%'

但这没有按预期工作,有人可以帮忙吗?

7 个答案:

答案 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) = '-'