我想根据条件设置ret
“0”或“1”真或false.I有写以下Oracle SQL查询:预言:INTO子句中Case语句不工作的其他选项
DECLARE
member_code VARCHAR2(3);
person_id VARCHAR2(3);
ret VARCHAR2(1);
BEGIN
person_id := 'id1';
member_code := '123';
SELECT CASE WHEN PER_ID = person_id AND MEM_CODE = member_code THEN '1' ELSE '0' END
into ret
FROM Table_Persons
WHERE PER_ID = person_id AND MEM_CODE = member_code;
DBMS_OUTPUT.PUT_LINE(ret);
END;
的代码工作正常,如果它得到大小写匹配并返回'1'。 但是,如果没有匹配,代码不会返回“0”。相反,它会显示错误ORA-01403: no data found
。所以,我如何评估ELSE '0'
没有发现case.please help.thanks
SELECT INTO语句无行为回。检查NVL功能。 –
我很疑惑...你的情况是WHERE PER_ID = person_id和MEM_CODE = member_code;'。你怎么能得到一个会产生'0'的记录?我错过了什么吗? – FDavidov