OracleÖÐDecode()º¯ÊýʹÓü¼ÇÉ
¡¡¡¡decode()º¯ÊýÊÇORACLE PL/SQLÊǹ¦ÄÜÇ¿´óµÄº¯ÊýÖ®Ò»£¬Ä¿Ç°»¹Ö»ÓÐORACLE¹«Ë¾µÄSQLÌṩÁ˴˺¯Êý£¬ÆäËûÊý¾Ý¿â³§É̵ÄSQLʵÏÖ»¹Ã»Óд˹¦ÄÜ¡£
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
¡¡
Ïà¹ØÎĵµ£º
oracleÖÐÁ¬½ÓÓë»á»°²»ÊÇÒ»¸ö¸ÅÄî!!!
ÔÚOracleÖУ¬Á¬½ÓÖ»Êǿͻ§½ø³ÌºÍÊý¾Ý¿âʵÀýÖ®¼äµÄÒ»ÌõÌØÊâÏß·£¬×î³£¼ûµÄ¾ÍÊÇÍøÂçÁ¬½Ó¡£ÕâÌõÁ¬½Ó¿ÉÄÜÁ¬½Óµ½Ò»¸öרÓ÷þÎñÆ÷½ø³Ì£¬Ò²¿ÉÄÜÁ¬½Óµ½µ÷¶ÈÆ÷¡£ÈçǰËùÊö£¬Á¬½ÓÉÏ¿ÉÒÔÓÐ0¸ö»ò¶à¸ö»á»°£¬Õâ˵Ã÷¿ÉÒÔÓÐÁ¬½Ó¶øÎÞÏàÓ¦µÄ»á»°¡£ÁíÍ⣬һ¸ö»á»°¿ÉÒÔÓÐÁ¬½ÓÒ²¿ÉÒÔûÓÐÁ¬½Ó¡£Ê¹Óø߼¶Oracle N ......
ǰ¼¸Ìì²Ù×÷Öз¢Ïֵģ¬Ò²²»ÖªµÀÊDz»ÊÇÎÒûÓиÄÅäÖû¹ÊÇÔõôµÄ£¬ÎÒ±¾È˵ÄÊý¾Ý¿â¾ÍÊÇĬÈϰ²×°µÄ£¬È»ºó½«scottÓû§½âËøÁË£¬scottÓû§Ó¦¸ÃÊÇÆÕͨÓû§£¬¶ø²»ÊÇDBAÓû§¡£°´ÕÕ³£Àí·ÖÎö˵£¬ËûÓ¦¸ÃÊDz»ÊÇÄܹ»½øÈëϵͳ£¬Ò»°ãµÄʱºò£¬É趨ȨÏÞµÄʱºò¶¼»áÕâÑùÉè¡£
ÎÒ½«excelµÄÊý¾Ýµ¼ÈëoracleÖУ¬Ö´ÐеÄÈÕÖ¾Îļ ......
ÕÒµ½Ò»¸ö½éÉÜoracle°æ±¾µÄÎÄÕ¡£
http://wapedia.mobi/en/Oracle_Database#3.
¡ö1979: Larry Ellison and friends founded Software Development Laboratories.
¡ö1979: SDL changed its company-name to "Relational Software, Inc." (RSI) and introduced its product Oracle V2 as an early commercially ......
ÔÚORACLE ´óÊý¾ÝÁ¿ÏµķÖÒ³½â¾ö·½·¨¡£Ò»°ãÓýØÈ¡ID ·½·¨£¬»¹ÓÐÊÇÈý²ã ǶÌ×·½·¨
Ò»ÖÖ·ÖÒ³·½·¨
<%
int i = 1;
int numPages = 14;
String pages = request.getParameter("page");
int currentPage = 1;
cu ......
ÊÕ¼¯µÄ¼¸ÌõÔÚoracleÖÐͨ¹ýconnect by priorÀ´ÊµÏֵݹé²éѯ
Start with...Connect By×Ó¾äµÝ¹é²éѯһ°ãÓÃÓÚÒ»¸ö±íά»¤Ê÷ÐνṹµÄÓ¦Óá£
´´½¨Ê¾Àý±í£º
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER ......