类似SQL的查询不起作用
我试图对Oracle DB运行以下查询,但该查询返回0条记录:类似SQL的查询不起作用,sql,oracle,Sql,Oracle,我试图对Oracle DB运行以下查询,但该查询返回0条记录: 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 Co
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"))
我猜字段中的引号会把查询搞得一团糟,但我不知道如何绕过它。有什么建议吗?这对我很有用:
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"))';
看看是否有任何结果刚刚意识到此表中有两个名称类似的字段,我选择了错误的字段。您作为记录示例提供的字符串是您正在搜索的字段中包含的文本,还是生成该记录的SQL的一部分?字段是否包含See注释,包括双引号?是的,这就是字段中包含的确切文本。该字段实际上包含带双引号的See注释;你应该把你的答案标记为被接受的答案,这样其他看到这个问题的人就会浪费时间去寻找答案。