oracle中在in子查詢語句中order by排序能否用
你自己寫得句子 是 這樣的條件啊
SELECT ORG_ID,ORG_NAME,ORG_PARENT_ID FROM ORG_MASTER
WHERE ORG_PARENT_ID in (SELECT ORG_ID FROM ORG_MASTER WHERE ORG_PARENT_ID=1 ORDER BY ORG_ORDER)
AND ROWNUM 1
SELECT ORG_ID,ORG_NAME,ORG_PARENT_ID
FROM (select * from ORG_MASTER WHERE ORG_PARENT_ID1 ORDER BY ORG_ORDER)
where ROWNUM
Oracle語句中IN和=的區別有哪些
Oracle語句中IN和=的區別有:
1、首先應用范圍不一樣:in 可以理解為是范圍內的選擇;= 只有一個。例如:
select sno, sname from t1 where sno in ('sn1001','sn1002');
select sno, sname from t1 where sno in ('sn1001');
select sno, sname from t1 where sno ='sn1001';
select sno, sname from t1 where sno in (select sno from t2); --子查詢結果可以不止一個結果
select sno, sname from t1 where sno =(select sno from t2); --子查詢結果只能有一個。
2、其次性能也不一樣;=的性能大于in的性能,因為=能較好的使用索引等。
3、in 表示在一個結合內進行查詢,比如 select * from character where letter in ('A','B','C')。
=的作用就是一個值的比較。但是等號也可以實現in的效果,只是寫起來比較麻煩。比如上面的例子,也可以這樣寫:
select * from character where letter='A' or letter='B' or letter='C'.
兩個運算符都比較常用,根據具體的情況選擇。
怎么在oracle的查詢語句中的in后用變量
要想在in中用變量,需要用動態SQL,請看下例子,我在oracle 10g中測試通過:
declare
v_1 varchar2(100);
v_2 varchar2(200);
begin
v_1:='(''1'',''2'',''3'')';
v_2:='insert into testa2 select * from testa1 where fch in'|| v_1;
execute immediate v_2;
commit;
end;
在oracle 中,查詢語句用 in 和 or 查詢的結果條數不一樣
先試試不要and a_devtestdt is null 這句、查看兩段代碼結果。
再試試下面
select dept from A
where (status='[D2]方案設計階段' or status='[D2]方案審核中' or status ='[D2]開發中' or status='[D2]開發完成' or status='[D2]單元測試進行中')
and a_devtestdt is null
-----------------------
select dept from A
where status in('[D2]方案設計階段','[D2]方案審核中','[D2]開發中','[D2]開發完成','[D2]單元測試進行中')
and a_devtestdt is null
一般有 OR 和 AND 同時出現的where 條件、最好加括號區分
oracel sql查詢語句用in查詢的時候,如何讓重復的數據也顯示出來
重復的數據,in語句會自動過濾
in語句你可以理解為 多個or 語句
比如
select * from uer where id in ('1006','1006','1006')就等同于
select * from uer where id ='1006' or id='1006' or id='1006'
如果一定要三條都顯示
通過union all
select * from uer where id ='1006'
union all
select * from uer where id ='1006'
union all
select * from uer where id ='1006'
轉載請注明出處華閱文章網 » oraclein查詢語句