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