簡體   English   中英

SQL WHERE Like Clause不返回所有結果

[英]SQL WHERE Like Clause not returning all results

我有一個奇怪的,我過去幾個小時都在摸不着頭腦。

我有一個相對簡單的TSQL

SELECT 
  LTRIM(RTRIM(bom_comp_code)) [bom_comp_code]
  , bom_product                 
  , bom.actual_partnumber           
FROM 
  dbo.MRP_ALL bom 
WHERE               
  bom.bom_product = 'F00434' 

這將返回500行結果,如 - 完美

[bom_comp_code]  [bom_product]  [actual_partnumber]
M03275           F00434         99292922            
M03275           F00434         99292922            
B01869           F00434         99292922            
B01869           F00434         99292922            
M03275           F00434         99292922            
M03275           F00434         99292922            
B01869           F00434         99292922            
...      
...
B01869           F00434         99292922            
B01869           F00434         99292922            
M03275           F00434         1110-011        
M03275           F00434         1110-011

現在我只對以M開頭的bom_comp_code感興趣,所以我自然會使用以下TSQL

SELECT 
  LTRIM(RTRIM(bom_comp_code)) [bom_comp_code]
  , bom_product                 
  , bom.actual_partnumber           
FROM 
  dbo.MRP_ALL bom 
WHERE               
  bom.bom_product = 'F00434' 
AND LTRIM(RTRIM(bom.bom_comp_code)) like 'M%'

但這只會返回一行!

[bom_comp_code]  [bom_product]  [actual_partnumber]
M03275           F00434         1110-011

我不能為我的生活理解為什么當表中的224符合我的標准時,只返回一行

我認為LTRIM / RTRIM在bom_comp_code字段周圍有空格,但這不起作用。

我也在bom_product周圍試過這個以防萬一。

有什么可能阻止我的所有行返回?

使用LEFT()

AND LEFT(bom_comp_code, 1) = 'M'

如果你真的有空間

AND LEFT(LTRIM(bom_comp_code), 1) = 'M'

要檢查你的字符串開頭是否有特殊字符,然后像這樣調試

SELECT LEFT(LTRIM(bom_comp_code), 1) as first_char,
       ASCII (LEFT(LTRIM(bom_comp_code), 1)) as ascii_number
       LTRIM(bom_comp_code)
FROM dbo.MRP_ALL bom 

我有一個類似的問題,我有特殊的角色就像上面提到的“Juan Carlos Oropeza”。

使用此答案https://stackoverflow.com/a/14211957/7141065中的功能,我能夠更新相關列並在此之后正常運行查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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