OracleÊý¾Ý¿âDecode()º¯ÊýµÄʹÓ÷½·¨
[ÕªÒª] DECODEº¯ÊýµÄ×÷ÓãºËü¿ÉÒÔ½«ÊäÈëÊýÖµÓ뺯ÊýÖеIJÎÊýÁбíÏà±È½Ï£¬¸ù¾ÝÊäÈëÖµ·µ»ØÒ»¸ö¶ÔÓ¦Öµ¡£º¯ÊýµÄ²ÎÊýÁбíÊÇÓÉÈô¸ÉÊýÖµ¼°Æä¶ÔÓ¦½á¹ûÖµ×é³ÉµÄÈô¸ÉÐòżÐÎʽ¡£
DECODEº¯ÊýµÄ×÷ÓãºËü¿ÉÒÔ½«ÊäÈëÊýÖµÓ뺯ÊýÖеIJÎÊýÁбíÏà±È½Ï£¬¸ù¾ÝÊäÈëÖµ·µ»ØÒ»¸ö¶ÔÓ¦Öµ¡£º¯ÊýµÄ²ÎÊýÁбíÊÇÓÉÈô¸ÉÊýÖµ¼°Æä¶ÔÓ¦½á¹ûÖµ×é³ÉµÄÈô¸ÉÐòżÐÎʽ¡£µ±È»£¬Èç¹ûδÄÜÓëÈκÎÒ»¸öʵ²ÎÐòżƥÅä³É¹¦£¬Ôòº¯ÊýÒ²ÓÐĬÈϵķµ»ØÖµ¡£
Çø±ðÓÚSQLµÄÆäËüº¯Êý£¬DECODEº¯Êý»¹ÄÜʶ±ðºÍ²Ù×÷¿ÕÖµ¡£
¡¡¡¡Óï·¨ÈçÏ£º
¡¡¡¡DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
¡¡¡¡control _value
¡¡¡¡ÊÔͼ´¦ÀíµÄÊýÖµ¡£DECODEº¯Êý½«¸ÃÊýÖµÓëºóÃæµÄһϵÁеÄżÐòÏà±È½Ï£¬ÒÔ¾ö¶¨·µ»ØÖµ¡£
¡¡¡¡value1
¡¡¡¡ÊÇÒ»×é³ÉÐòżµÄÊýÖµ¡£Èç¹ûÊäÈëÊýÖµÓë֮ƥÅä³É¹¦£¬ÔòÏàÓ¦µÄ½á¹û½«±»·µ»Ø¡£¶ÔÓ¦Ò»¸ö¿ÕµÄ·µ»ØÖµ£¬¿ÉÒÔʹÓùؼü×ÖNULLÓÚÖ®¶ÔÓ¦
¡¡¡¡result1
¡¡¡¡ÊÇÒ»×é³ÉÐòżµÄ½á¹ûÖµ¡£
¡¡¡¡default_result δÄÜÓëÈκÎÒ»¸öֵƥÅäʱ£¬º¯Êý·µ»ØµÄĬÈÏÖµ¡£
¡¡¡¡Ê¾ÀýÈçÏ£º
¡¡¡¡select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
¡¡¡¡µ±xµÈÓÚ1ʱ£¬Ôò·µ»Ø‘x is 1’¡£
¡¡¡¡µ±xµÈÓÚ2ʱ£¬Ôò·µ»Ø‘x is 2’¡£
¡¡¡¡·ñÔò£¬·µ»Øothers’¡£
¡¡¡¡ÔÚÐèÒª±È½Ï2¸öÖµµÄʱºò£¬ÎÒÃÇ¿ÉÒÔÅäºÏSIGN()º¯ÊýÒ»ÆðʹÓá£
¡¡¡¡SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
¡¡¡¡Í¬Ñù£¬Ò²¿ÉÒÔÓÃCASEʵÏÖ£º
¡¡¡¡SELECT CASE SIGN(5 - 6)
¡¡¡¡WHEN 1 THEN 'Is Positive'
¡¡¡¡WHEN¡¡-1 THEN 'Is Nagative'
¡¡¡¡ELSE¡¡'Is Zero' END
¡¡¡¡from DUAL
¡¡¡¡ÁíÍ⣬´ó¼Ò»¹¿ÉÒÔÔÚOrder byÖÐʹÓÃDecode¡£
¡¡¡¡Àý£º±ítable_subject£¬ÓÐsubject_nameÁС£ÒªÇó°´ÕÕ£ºÓï¡¢Êý¡¢ÍâµÄ˳Ðò½øÐÐÅÅÐò¡£Õâʱ£¬¾Í¿ÉÒԷdz£ÇáËɵÄʹÓÃDecodeÍê³ÉÒªÇóÁË¡£
¡¡¡¡select * from table_subject order by decode(subject_name, 'ÓïÎÄ', 1, 'Êýѧ', 2, , 'ÍâÓï',3)
Ïà¹ØÎĵµ£º
MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......
¡¾×ª¡¿http://www.gbunix.com/htmldata/2004_06/2/5/article_53_1.html
oracleϵͳ±í²éѯ¡¾GBUnix¡¿
Êý¾Ý×Öµädict×ÜÊÇÊôÓÚOracleÓû§sysµÄ¡£
¡¡¡¡1¡¢Óû§£º
¡¡¡¡¡¡select username from dba_users;
¡¡¡¡¸Ä¿ÚÁî
¡¡¡¡¡¡alter user spgroup identified by spgtest;
¡¡¡¡2¡¢±í¿Õ¼ä£º
¡¡¡¡¡¡select * fro ......
1 ²Ù×÷ϵͳ±¸·Ý
²Ù×÷ϵͳ±¸·ÝºÍ»Ö¸´ÊµÊ©ÆðÀ´±È½Ï¼òµ¥£¬µ±È»Ò²±È½Ï·Ñʱ£¬ÒªÇóϵͳֹͣʹÓ㬴˹ý³Ì°üÀ¨¹Ø±ÕÊý¾Ý¿â²¢´ÓϵͳÉÏ×¢ÏúËùÓÐÓû§¡£ËùÓзÃÎʱ»½â³ýÖ®ºó£¬ÏµÍ³¹Ø±Õ²¢ÒÔµ¥Óû§·½Ê½ÖØÐÂÆô¶¯£¬¿ØÖÆÈ¨½»¸øÏµÍ³¹ÜÀíÔ±£¬ÕâÒ»²½È·±£Ã»ÓÐÓû§Ó¦ÓóÌÐòÈí¼þÔËÐУ¬±ÜÃâÐÞ¸ÄÓ²ÅÌÉϵÄÊý¾Ý¡£Èç¹ûÕâ¸ö±¸·ÝÓÃÓÚ»Ö¸´Êý¾Ý¿âϵͳ£¬ÄÇôϵ ......
ÏÞÖÆË÷ÒýÊÇһЩûÓоÑéµÄ¿ª·¢ÈËÔ±¾³£·¸µÄ´íÎóÖ®Ò»¡£ÔÚSQLÖÐÓкܶàÏÝÚå»áʹһЩË÷ÒýÎÞ·¨Ê¹Óá£ÏÂÃæÌÖÂÛһЩ³£¼ûµÄÎÊÌ⣺
1 ʹÓò»µÈÓÚ²Ù×÷·û(<>¡¢!=)
ÏÂÃæµÄ²éѯ¼´Ê¹ÔÚcust_ratingÁÐÓÐÒ»¸öË÷Òý£¬²éѯÓï¾äÈÔȻִÐÐÒ»´ÎÈ«±íɨÃè¡£
  ......
Oracle ´¥·¢Æ÷ÓÐÓï¾ä¼¶´¥·¢Æ÷ºÍÐм¶´¥·¢Æ÷
Óï¾ä¼¶´¥·¢Æ÷ µ±É¾³ý²¿ÃűíÖеIJ¿ÃźÅʱ£¬Í¬Ê±É¾³ýµôÔ±¹¤±íÖв¿ÃźÅΪ£ºold.deptnoµÄ¼Ç¼
create or replace trigger del_dept_id
after delete on dept
for each row
begin
delete from emp where deptno=:old.deptno;
end;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖ ......