我遇到了一段我试图转换成 Oracle 的 T-SQL。它看起来像这样:
SET @local variable=
CASE
when exists (select field from table where value=0) then 0
when exists (select same field from same table where value=1) then 1
when exists (select same fieldfrom same table where value=2) then 1
else @local variable
END
@local 变量是在过程前面的查询结果中设置的。
现在,我尝试通过以下方式将其转换为 Oracle:
BEGIN
SELECT CASE
WHEN EXISTS (
SELECT field
FROM table
WHERE value = 0
)
THEN 0
WHEN EXISTS (
SELECT same field
FROM same table
WHERE value = 1
)
THEN 1
WHEN EXISTS (
SELECT same field
FROM same table
WHERE value = 2
)
THEN 1
ELSE localvariable
END
INTO localvariable
FROM DUAL;
END;
但是,PL/SQL 似乎不喜欢我在 else 语句和into 语句中使用 @localvariable。我知道这可能不是一个写得很好的查询,但这里的解决方案是什么?我如何用合法的 PL/SQL 写这个?