簡體   English   中英

LIKE的SQL語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM