oracleÖÐin£¬not inºÍexists£¬not existsÖ®¼äµÄÇø±ð
Ò»Ö±Ìýµ½µÄ¶¼ÊÇ˵¾¡Á¿ÓÃexists²»ÒªÓÃin£¬ÒòΪexistsÖ»ÅжϴæÔÚ¶øinÐèÒª¶Ô±ÈÖµ£¬ËùÒÔexists±È½Ï¿ì£¬µ«¿´ÁË¿´ÍøÉϵÄһЩ¶«Î÷²Å·¢ÏÖ¸ù±¾²»ÊÇÕâô»ØÊ¡£
ÏÂÃæÕâ¶ÎÊdzµÄ
Select * from T1 where x in ( select y from T2 )
Ö´ÐеĹý³ÌÏ൱ÓÚ:
select *
from t1, ( select distinct y from t2 ) t2
where t1.x = t2.y;
select * from t1 where exists ( select null from t2 where y = x )
Ö´ÐеĹý³ÌÏ൱ÓÚ:
for x in ( select * from t1 )
loop
if ( exists ( select null from t2 where y = x.x )
then
OUTPUT THE RECORD
end if
end loop
´ÓÎҵĽǶÈÀ´Ëµ£¬inµÄ·½Ê½±È½ÏÖ±¹Û£¬existsÔòÓÐÐ©ÈÆ£¬¶øÇÒin¿ÉÒÔÓÃÓÚ¸÷ÖÖ×Ó²éѯ£¬¶øexistsºÃÏñÖ»ÓÃÓÚ¹ØÁª×Ó²éѯ£¨ÆäËû×Ó²éѯµ±È»Ò²¿ÉÒÔÓ㬿ÉϧûÒâÒ壩¡£
ÓÉÓÚexistsÊÇÓÃloopµÄ·½Ê½£¬ËùÒÔ£¬Ñ»·µÄ´ÎÊý¶ÔÓÚexistsÓ°Ïì×î´ó£¬ËùÒÔ£¬Íâ±íÒª¼Ç¼ÊýÉÙ£¬ÄÚ±í¾ÍÎÞËùνÁË£¬¶øinÓõÄÊÇhash join£¬ËùÒÔÄÚ±íÈç¹ûС£¬Õû¸ö²éѯµÄ·¶Î§¶¼»áºÜС£¬Èç¹ûÄÚ±íºÜ´ó£¬Íâ±íÈç¹ûÒ²ºÜ´ó¾ÍºÜÂýÁË£¬Õâʱºòexists²ÅÕæÕýµÄ»á¿ì¹ýinµÄ·½Ê½¡£
ÏÂÃæÕâ¶Î»¹ÊdzµÄ
not in ºÍnot exists
Èç¹û²éѯÓï¾äʹÓÃÁËnot in ÄÇôÄÚÍâ±í¶¼½øÐÐÈ«±íɨÃ裬ûÓÐÓõ½Ë÷Òý£»
¶ønot extsts µÄ×Ó²éѯÒÀÈ»ÄÜÓõ½±íÉϵÄË÷Òý¡£
ËùÒÔÎÞÂÛÄǸö±í´ó£¬ÓÃnot exists¶¼±Ènot inÒª¿ì¡£
Ò²¾ÍÊÇ˵£¬inºÍexistsÐèÒª¾ßÌåÇé¿ö¾ßÌå·ÖÎö£¬not inºÍnot exists¾Í²»Ó÷ÖÎöÁË£¬¾¡Á¿ÓÃnot exists¾ÍºÃÁË¡£
ÏÂÓÐÒ»¸ö±í-µçÊÓ¾ç
TvPlay(title, year, studioname, ÄÐÖ÷½Ç, Å®Ö÷½Ç)£¬
²éѯ³ö±»Öظ´ÅÄÉã1´ÎÒÔÉϵĵçÊÓ¾çÃû£¬(ÈçÉäµñ£¬ÒÐÌìÍÀÁú)
select title
from TvPlay tp
where year >
(select year
from &nbs
Ïà¹ØÎĵµ£º
×î½üÔÚʹÓùý³ÌÖеķ¢ÏÖÁ¬½ÓÊý¾Ý¿âʱºÃʱ»µ£¬¾³£±¨TNSÒì³££¬ÔÚ¿ØÖÆÃæ°åÖÐÔÚ·þÎñÖн«tnsÕý³£Æô¶¯ºó£¬µ±Á¬½ÓÊý¾Ý¿âʱ·¢ÏÖtnsÓÖÍ£Ö¹ÁË¡£¿à¿àÔÚÍøÉÏËÑѰÁËÐí¶à£¬·¢ÏÖÍøÉÏÆÌÌì¸ÇµØµÄÈýÖÖ·½·¨£¬ÎÒÒ»Ò»ÊÔÁ˶¼Ã»ÓÐ×÷Óá£
ºóÀ´ÎÞÒâÖп´µ½Ò»Î»ÍøÓÑ˵Ëû³öÏÖ¹ýÏàͬµÄÎÊÌ⣬ÊÇÓÉÓÚ×°Á˸övpnÈí¼þ£¬ÕâʱµÄÎÒÉñ¾ÌرðÃô ......
1. ASCII
·µ»ØÓëÖ¸¶¨µÄ×Ö·û¶ÔÓ¦µÄÊ®½øÖÆÊý;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2. CHR
¸ø³öÕûÊý,·µ»Ø¶ÔÓ¦µÄ×Ö·û;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH ......
¾ÍÊÇÓÉÆÕͨ×Ö·û£¨ÀýÈç×Ö·ûaµ½z£©ÒÔ¼°ÌØÊâ×Ö·û£¨³ÆÎªÔª×Ö·û£©×é³ÉµÄÎÄ×Öģʽ¡£¸ÃģʽÃèÊöÔÚ²éÕÒÎÄ×ÖÖ÷Ìåʱ´ýÆ¥ÅäµÄÒ»¸ö»ò¶à¸ö×Ö·û´®¡£ÕýÔò±í´ïʽ×÷Ϊһ¸öÄ£°å£¬½«Ä³¸ö×Ö·ûģʽÓëËùËÑË÷µÄ×Ö·û´®½øÐÐÆ¥Åä¡£
±¾ÎÄÏêϸµØÁгöÁËÄÜÔÚÕýÔò±í´ïʽÖÐʹÓã¬ÒÔÆ¥ÅäÎı¾µÄ¸÷ÖÖ×Ö·û¡£µ±ÄãÐèÒª½âÊÍÒ»¸öÏÖÓеÄÕýÔò±í´ïʽʱ£¬¿ÉÒÔ×÷Ϊһ¸ö¿ ......
select t.*, t.rowid from indicators t start with (t.isleaf='1' and t.rid='26020')
connect by prior t.pid = t.id order by t.inum
´ÓÒ¶×Ó½ÚµãÒÀ¾Ýid=pidµÄ¹ØÏµÏòÉϵݹ鵽¸ú½Úµã¡£
select t.*, t.rowid from indicators t start with (t.pid='0' and t.rid='26020')
connect by prior t.id = t.pid order by t.i ......
oracleÊý¾Ý¿â²åÈëÈÕÆÚÐÍÊý¾Ý
ÍùOracleÊý¾Ý¿âÖвåÈëÈÕÆÚÐÍÊý¾Ý£¨to_dateµÄÓ÷¨£©
INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ;
²éѯÏÔʾ£º2007-12-20 18:31:34.0
-------------------
INSERT INTO FLOOR VALUES ......