Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Oracle DECODEº¯Êý

DECODEº¯ÊýÊÇORACLE PL/SQLÊǹ¦ÄÜÇ¿´óµÄº¯ÊýÖ®Ò»£¬Ä¿Ç°»¹Ö»ÓÐORACLE¹«Ë¾µÄSQLÌṩÁ˴˺¯Êý£¬ÆäËûÊý¾Ý¿â³§É̵ÄSQLʵÏÖ»¹Ã»Óд˹¦ÄÜ¡£DECODEÓÐʲôÓÃ;ÄØ£¿Ïȹ¹ÔìÒ»¸öÀý×Ó£¬¼ÙÉèÎÒÃÇÏë¸øÖÇÐÇÖ°Ô±¼Ó¹¤×Ê£¬Æä±ê×¼ÊÇ£º¹¤×ÊÔÚ8000ÔªÒÔϵĽ«¼Ó20£¥£»¹¤×ÊÔÚ8000ÔªÒÔÉϵļÓ15£¥£¬Í¨³£µÄ×ö·¨ÊÇ£¬ÏÈÑ¡³ö¼Ç¼ÖеŤ×Ê×Ö¶ÎÖµ? select salary into var-salary from employee£¬È»ºó¶Ô±äÁ¿var-salaryÓÃif-then-else»òchoose caseÖ®ÀàµÄÁ÷¿ØÖÆÓï¾ä½øÐÐÅжϡ£ Èç¹ûÓÃDECODEº¯Êý£¬ÄÇôÎÒÃǾͿÉÒÔ°ÑÕâЩÁ÷¿ØÖÆÓï¾äÊ¡ÂÔ£¬Í¨¹ýSQLÓï¾ä¾Í¿ÉÒÔÖ±½ÓÍê³É¡£ÈçÏ£ºselect decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee ÊDz»ÊǺܼò½à£¿ DECODEµÄÓï·¨£ºDECODE(value,if1,then1,if2,then2,if3,then3,...,else)£¬±íʾÈç¹ûvalueµÈÓÚif1ʱ£¬DECODEº¯ÊýµÄ½á¹û·µ»Øthen1,...,Èç¹û²»µÈÓÚÈκÎÒ»¸öifÖµ£¬Ôò·µ»Øelse¡£³õ¿´Ò»Ï£¬DECODE Ö»ÄÜ×öµÈÓÚ²âÊÔ£¬µ«¸Õ²ÅÒ²¿´µ½ÁË£¬ÎÒÃÇͨ¹ýһЩº¯Êý»ò¼ÆËãÌæ´úvalue£¬ÊÇ¿ÉÒÔʹDECODEº¯Êý¾ß±¸´óÓÚ¡¢Ð¡ÓÚ»òµÈÓÚ¹¦ÄÜ¡£
decode()º¯ÊýʹÓü¼ÇÉ
·Èí¼þ»·¾³:
1¡¢Windows NT4.0+ORACLE 8.0.4
2¡¢ORACLE°²×°Â·¾¶Îª:C:\ORANT
·º¬Òå½âÊÍ:
decode(Ìõ¼þ,Öµ1,·­ÒëÖµ1,Öµ2,·­ÒëÖµ2,...Öµn,·­ÒëÖµn,ȱʡֵ)
¸Ãº¯ÊýµÄº¬ÒåÈçÏÂ:
IF Ìõ¼þ=Öµ1 THEN
RETURN(·­ÒëÖµ1)
ELSIF Ìõ¼þ=Öµ2 THEN
RETURN(·­ÒëÖµ2)
......
ELSIF Ìõ¼þ=Öµn THEN
RETURN(·­ÒëÖµn)
ELSE
RETURN(ȱʡֵ)
END IF
· ʹÓ÷½·¨:
1¡¢±È½Ï´óС
select decode(sign(±äÁ¿1-±äÁ¿2),-1,±äÁ¿1,±äÁ¿2) from dual; --È¡½ÏСֵ
sign()º¯Êý¸ù¾Ýij¸öÖµÊÇ0¡¢ÕýÊý»¹ÊǸºÊý£¬·Ö±ð·µ»Ø0¡¢1¡¢-1
ÀýÈç:
±äÁ¿1=10£¬±äÁ¿2=20
Ôòsign(±äÁ¿1-±äÁ¿2)·µ»Ø-1£¬decode½âÂë½á¹ûΪ“±äÁ¿1”£¬´ïµ½ÁËÈ¡½ÏСֵµÄÄ¿µÄ¡£
2¡¢±í¡¢ÊÓͼ½á¹¹×ª»¯
ÏÖÓÐÒ»¸öÉÌÆ·ÏúÊÛ±ísale£¬±í½á¹¹Îª:
month¡¡¡¡¡¡ char(6)¡¡¡¡¡¡¡¡¡¡ --Ô·Ý
sell¡¡¡¡¡¡¡¡number(10,2)¡¡¡¡¡¡--ÔÂÏúÊÛ½ð¶î
ÏÖÓÐÊý¾ÝΪ:
200001¡¡¡¡1000
200002¡¡¡¡1100
200003¡¡¡¡1200
200004¡¡¡¡1300
200005¡¡¡¡1400
200006¡¡¡¡1500
200007¡¡¡¡1600
200101¡¡¡¡1100
200202¡¡¡¡1200
200301¡¡¡¡1300
ÏëҪת»¯ÎªÒÔϽṹµÄÊý¾Ý:
year¡¡¡¡¡¡char(4)¡¡¡¡¡¡¡¡¡¡ --Äê·Ý
month1¡¡¡¡number(10,2)¡¡¡¡¡¡--1ÔÂÏúÊÛ½ð¶î
month2¡¡¡¡number(10,2)¡¡¡¡¡¡--2ÔÂÏúÊÛ½ð¶î
month3¡¡¡¡number(10,2)¡¡¡¡¡¡--3ÔÂÏ


Ïà¹ØÎĵµ£º

oracle ¼ì²é±»ËøµÄ±í¼°½âËø

Ô­ÎĵØÖ·£ºhttp://tech.e800.com.cn/articles/2009/710/1247207067745_1.html
´¦Àí·½·¨Ò» £º

¼ì²éÄĸö±í±»Ëø
select sess.sid,sess.serial#,
lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from
v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id =
lo.object_id
......

´ÓORACLEÖÐÓÃÓï¾äµ¼³öÐòÁÐ

½ñÌì´ÓÊý¾Ý¿âÖе¼³ö¼¸ÕÅ±í£¬µ«·¢ÏÖÐèÒªµÄÐòÁж¼Ã»µ¼³öÀ´£¬ÓÚÊÇÍøÉÏÕÒÕÒ·½·¨£¬·¢ÏÖÁËÈçÏÂÓï¾ä
select
'create sequence USERNAME.'|| t.sequence_name || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequen ......

oracleÖеķÖÎöº¯Êý

·ÖÎöº¯Êý£¬×îÔçÊÇ´ÓORACLE8.1.6¿ªÊ¼³öÏֵģ¬ËüµÄÉè¼ÆÄ¿µÄÊÇΪÁ˽â¾öÖîÈç“ÀۼƼÆË㔣¬“ÕÒ³ö·Ö×éÄڰٷֱȔ£¬“Ç°-NÌõ²éѯ”£¬“Òƶ¯Æ½¾ùÊý¼ÆËã”"µÈÎÊÌâ¡£Æäʵ´ó²¿·ÖµÄÎÊÌⶼ¿ÉÒÔÓÃPL/SQL½â¾ö£¬µ«ÊÇËüµÄÐÔÄܲ¢²»ÄÜ´ïµ½ÄãËùÆÚÍûµÄЧ¹û¡£·ÖÎöº¯ÊýÊÇSQLÑÔÓïµÄÒ»ÖÖÀ©³ä£¬Ëü²¢²»Êǽö½ ......

oracle UPDATE ¶à±í¹ØÁª¸üÐÂ

update customers a
set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
-- update ³¬¹ý2¸öÖµ
update customers a
set (city_name,customer_type)=(select b.city_name,b.customer_ ......

OracleÊý¾Ý¿âÖеÄËø»úÖÆÑо¿

±¾ÎÄͨ¹ý¶ÔOracleÊý¾Ý¿âËø»úÖƵÄÑо¿£¬Ê×ÏȽéÉÜÁËOracleÊý¾Ý¿âËøµÄÖÖÀ࣬²¢ÃèÊöÁËʵ¼ÊÓ¦ÓÃÖÐÓöµ½µÄÓëËøÏà¹ØµÄÒì³£Çé¿ö£¬Ìرð¶Ô¾­³£Óöµ½
µÄÓÉÓڵȴýËø¶øʹÊÂÎñ±»¹ÒÆðµÄÎÊÌâ½øÐÐÁ˶¨Î»¼°½â¾ö£¬²¢¶ÔËÀËøÕâÒ»±È½ÏÑÏÖصÄÏÖÏó£¬Ìá³öÁËÏàÓ¦µÄ½â¾ö·½·¨ºÍ¾ßÌåµÄ·ÖÎö¹ý³Ì¡£
Êý¾Ý¿âÊÇÒ»¸ö¶àÓû§Ê¹ÓõĹ²Ïí×ÊÔ´¡£µ±¶à¸öÓû§²¢·¢µØ´æÈ¡ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ