實作功能:如果表2為空就查表一,否則查詢表1
if exists (select 0 from table2)
select * from table 1
else
select * from table 2
這樣的陳述句實作不了,在oracle中該怎么寫
uj5u.com熱心網友回復:
declare v_count int;begin
select count(*) into v_count from t1;
if v_count > 0 then
陳述句1
else
陳述句2
end;
end;
uj5u.com熱心網友回復:
declare v_count int;begin
select count(*) into v_count from t1;
if v_count > 0 then
陳述句1
else
陳述句2
end if;
end;
uj5u.com熱心網友回復:
贊同,樓主你要先確定表2為空,就可以用比如ID計數count的方式(最好用一定不會為空的欄位),查詢后如果count=0就說明為空,大于0就不為空咯uj5u.com熱心網友回復:
實作功能:如果表2為空就查表一,否則查詢表1???? 那不都是查表一嗎??估計是實作功能:如果表2為空就查表一,否則查詢表2
用存盤程序可以實作
先是定義一個變數
cnt int --就是整形的變數cnt
--然后查詢表2是不是為空
select count(*) into cnt from table2
--最后根據上面的查詢結果判斷查詢哪張表
if cnt>0 then
select * form table2
else
select * form table1
告訴你的是思路,具體的代碼你要根據你的程式改一下
uj5u.com熱心網友回復:
declare v_count int;begin
select count(*) into v_count from t1;
if v_count > 0 then
select * from table 1
else
select * from table 2
end if;
end;
uj5u.com熱心網友回復:
ORACLE 好像不能在 塊里面直接用 select 的吧 貌似必須要 intouj5u.com熱心網友回復:
這樣可以直接查出來的
select * from DEPT2
UNION
select * from DEPT WHERE 0 = (select COUNT(*) from DEPT2)
uj5u.com熱心網友回復:
小伙子
uj5u.com熱心網友回復:
表結構不同不行吧。如果表結構相同,是沒問題。
uj5u.com熱心網友回復:
這帖子寫得很仔細啊http://blog.csdn.net/hollboy/article/details/7550171
uj5u.com熱心網友回復:
http://bbs.csdn.net/topics/392138410#new_post
uj5u.com熱心網友回復:
DECLARE
v_tmp NUMBER := 0;
v_result NUMBER;
BEGIN
SELECT COUNT(* ) INTO v_tmp FROM student;
IF v_tmp <= 0 THEN
dbms_output.put_line('execute table2');
ELSE
dbms_output.put_line('execute table1');
END IF;
END;
uj5u.com熱心網友回復:
話說,雖然Oracle沒有if exists(...)
但是我能可以這樣寫
declare v_count int;
begin
select count(*) into v_count from t1;
if v_count > 0 then
select * from table 1
else
select * from table 2
end if;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/73393.html
標籤:開發
上一篇:Oralce 時間問題
下一篇:請教ocilib使用問題
