2010-07-08 137 views
0

我試圖運行鍼對Oracle數據庫下面的查詢,但查詢將返回0記錄:SQL LIKE查詢不工作

select * from TABLE 
where upper(FIELD) like '%SEE COMMENT%' 

我知道這個字段包含「見註釋」中多條記錄。它例如,下面是一條記錄:?

=if(and(Robust_Mean>=20,Robust_Mean<=70),.03*(Robust_Mean+29), 
if(Robust_Mean>70,.083*(Robust_Mean^.9),"See Comment")) 

我猜測,在該領域的引號搞亂查詢起來了,但是我不知道如何解決它的任何建議

+0

作爲記錄示例提供的字符串是包含在正在搜索的字段中的文本,還是生成該記錄的SQL的一部分?該字段是否實際包含「請參閱評論」(包括雙引號)? – Andy 2010-07-08 17:39:56

+0

是的,這就是包含在該字段中的確切文本。該字段實際上包含雙引號的「See Comment」。 – Randy 2010-07-08 17:53:56

+0

看起來像一個Excel單元格公式;) – onedaywhen 2010-07-08 19:16:52

回答

1

這適用於我:

create table testLike (aCol varchar2(500)); 

INSERT INTO TESTLIKE VALUES('abc'); 
insert into testLike values('=if(and(Robust_Mean>=20,Robust_Mean<=70),.03*(Robust_Mean+29), 
if(Robust_Mean>70,.083*(Robust_Mean^.9),"See Comment"))'); 


SELECT * 
    FROM TESTLIKE TL 
WHERE upper(tl.acol) like '%SEE COMMENT%'; 

你可以重新創建嗎?

編輯: 在查詢試試這個:

select * from TABLE 
WHERE UPPER(FIELD) = '=if(and(Robust_Mean>=20,Robust_Mean<=70),.03*(Robust_Mean+29), 
if(Robust_Mean>70,.083*(Robust_Mean^.9),"See Comment"))'; 

看看是否有任何結果

出現
+0

是的,這也爲我工作....現在我真的很困惑。 – Randy 2010-07-08 17:51:05

1

剛剛意識到有這個表中的兩個類似的命名字段,而我選擇了錯誤的一。

+1

您應該將您的答案標記爲「已接受的答案」,以便其他看到問題的人會花費他們的時間試圖尋找答案。 – Cyberherbalist 2010-07-08 17:59:11