[英]SQL statement with LIKE
我想選擇所有在第11個字符中都有下划線字符的記錄,所以我試試這個:
SELECT * FROM "BOM_SUB_LEVEL" where TOP_CODE like '%%%%%%%%%%_%%%'
但這沒有按預期工作,有人可以幫忙嗎?
只需使用“SUBSTRING”功能:
SELECT * FROM "BOM_SUB_LEVEL" where SUBSTRING(TOP_CODE, 11, 1) = "_"
渣
對於單個字符通配符,請使用_
。 對於多個字符通配符,請使用%
。 要逃避_
的“真實”外觀,請使用\\_
(感謝Bill!)。
請嘗試以下代碼:
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 '__________!_%'
%不是每個字符的通配符,它是字符串通配符的開頭和結尾。
即如果我想找到所有包含“car”的行,我會這樣做:
從myTable中選擇* myCol LIKE'%car%'
如果我只想要開車的行:
從myTable中選擇* myCol LIKE'car%'
並以汽車結束:
從myTable中選擇* myCol LIKE'%car'
%是通配符,可以替換字符或字符組合。 采用 ? 而是替換單個字符。
你可以嘗試類似的東西:(玩數字,我沒有普遍的測試)
SELECT *
FROM BOM_SUB_LEVEL
where SUBSTRING(TOP_CODE, 11,1) = '-'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.