请教大神朋友一个问题,在线等,急!!本人才疏学浅,望见谅!!
我现在想开发一个存储过程,需求如下:
两个表a 和 b,通过a 表中的tid和B表中的tagid进行关联。我想查询A表中有id的记录B表中没有的,然后取到ID,并得出‘在b表中不存在’的记录,同理,A表没有B表有也是类似。
谢谢大家!!!受教了。。。
------解决方案--------------------
declare
i number;
begin
SELECT count(*) into i FROM tbdata.DPF_S_PH_BOTTAG a WHERE NOT EXISTS
( SELECT 1 FROM tbdata.IMS_EPC_INFO b WHERE a.tagid = b.tid );
if i>0 then
dbms_output.putline('在b表中不存在');
end;
------解决方案--------------------
1.DECODE(value,search_value,result,default_value)对value与search_value进行比较。如果两个值相等,DECODE()返回result,否则返回default_value。DECODE()的每个参数都可以是列,字面值、函数或之查询。DECODE()是orcale以前所特有的一个函数,如果您在使用9i或更高版本,应该用case表达式来代替。
2.CASE 表达式语法:
CASE search_expression
WHEN expression1 THEN result1
…
ELSE default_result
END
或者
CASE
WHEN search_expression=expression1 THEN result1
…
ELSE default_result
END