我对以下内容感到有点困惑。该表的数据如下:
sid eid description returncode responsemessage State
1 T-1 200 OK Sent
1 T-1 Helloworld Processed
我不能使用存储过程,应用程序只支持SQL查询。
select *
from table
where eid='T-1'
and returncode='200'
and returnmessage='OK'
and state='Sent'
可能需要在这里添加一些内容吗?
有关如何使用SQL查询实现此目的的任何提示或想法?
更新:Oracle数据库,我想检索" HelloWorld"来自描述列,但只应在State = Sent具有returncode = 200且responsemessage = ok
时检索它答案 0 :(得分:1)
我并不完全清楚你想要完成什么,但也许你的意思是这样的:
select T1.*
from table T1
INNER JOIN table T2
ON T2.SID = T1.sid
where T1.eid='T-1'
and T1.returncode='200'
and T1.returnmessage='OK'
and T1.state='SENT'
AND T2.description IS NOT NULL
答案 1 :(得分:0)
我认为您可以使用exists
执行此操作:
select t.*
from t
where t.description is not null and t.eid = 'T-1' and
exists (select 1
from t t2
where t2.eid = t.eid and t2.returncode = '200' and
t2.returnmessage = 'OK' and t2.state = 'SENT'
);
您可能也希望在sid
上包含相等性,但问题并不明确。