2013-07-24 54 views
2

我有一個名爲OrderNumber的字段,並且已經有一個字段值爲「JY8023」的記錄。Like謂詞在SQL中如何工作?

我試着用這個SQL代碼查詢,但它什麼都沒返回。

SELECT .... WHERE OrderNumber LIKE "JY8023" 

我也使用通配符試着和它的工作

SELECT .... WHERE OrderNumber Like "%JY8023%" 

這是否意味着ORDERNUMBER像 「JY9023」是不一樣的訂單號碼= 「JY8023」

+0

他們不是_always_相同。我發現這個頁面非常有幫助:http://www.w3schools.com/sql/sql_like.asp – tkendrick20

+0

[我無法重現](http://sqlfiddle.com/#!2/6741b/2)。你能在那裏重現嗎? – hims056

+0

我在as/400上的DB2上試過這個,用FLD替換FLD ='X'LIKE'X'返回相同的記錄。 –

回答

2

該字符串在它之前或之後有字符,您看不到。嘗試類似select length(OrderNumber) WHERE OrderNumber Like "%JY8023%"來確認這一點。某些字符不僅不可見,而且不能用光標選擇。但是,他們在那裏,他們影響字符串比較。

要遵循的其他調試步驟將使用子字符串來提取有問題的部分和其他字符串函數以進一步檢查值。就像,也許選擇字符串作爲十六進制編碼的字符串將幫助您識別字節。

+0

是的,我查看了記錄本身。之前有字符,顯然當我查詢時沒有顯示出來。謝謝。現在正在工作。 – Jigs