[英]If condition in SQL Oracle
Oracle SQL
我需要檢查一個條件(一個標志),然后執行SQL代碼。
它的語法是什么。 我看到了一些文檔,上面寫着我們需要聲明過程,有人可以幫助我獲取該語法以及與此相關的內容。
例如:
IF Flag = 1
BEGIN
select productgroup,...
from
join.. on
where
END
ELSE
BEGIN
select product
from
join.. on
left join .. on
where
END
在您的PL / SQL塊中, IF Flag = 1 THEN select productgroup,... [INTO {variables here}] from join.. on where ...; ELSE select product [INTO {variables here}] from join.. on left join .. on where ...; END IF;
IF Flag = 1 THEN select productgroup,... [INTO {variables here}] from join.. on where ...; ELSE select product [INTO {variables here}] from join.. on left join .. on where ...; END IF;
請注意,如果要聲明返回值,則查詢可能需要INTO子句。 但是,為了使用此結構,您必須確保查詢將返回僅1和1的行。 不多不少。
如果需要將值作為行的集合,則必須對游標進行除法。
->這只是一個匿名塊。 不是程序或功能。
DECLARE
CURSOR C1 IS
[YOUR FIRST QUERY HERE];
CURSOR C2 IS
[YOUR SECOND QUERY HERE];
[other variables]
BEGIN
IF Flag = 1 THEN
FOR REC_C1 IN C1 LOOP
....
END LOOP;
ELSE
FOR REC_C2 IN C2 LOOP
....
END LOOP;
END IF;
END;
PROCEDURE check_condition (p_flag IN NUMBER)
IS
v_num NUMBER;
BEGIN
IF p_flag=1 THEN
SELECT COUNT(1)
INTO v_num
FROM table1
WHERE 1=0
AND ROWNUM=1;
IF v_num=0 THEN
raise_application_error(-20101,'ERROR');
END IF;
ELSIF p_flag=2 THEN
NULL;
ELSE
NULL;
END IF;
END;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.