CASE±í´ïʽ¿ÉÒÔÔÚSQLÖÐʵÏÖif-then-elseÐ͵ÄÂß¼£¬¶ø²»±ØÊ¹ÓÃPL/SQL¡£CASEµÄ¹¤×÷·½Ê½ÓëDECODE()ÀàËÆ£¬µ«Ó¦¸ÃʹÓÃCASE,ÒòΪËüÓëANSI¼æÈÝ¡£
CASEÓÐÁ½ÖÖ±í´ïʽ:
1. ¼òµ¥CASE±í´ïʽ,ʹÓñí´ïʽȷ¶¨·µ»ØÖµ.
Óï·¨:
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN result2
...
WHEN expressionN THEN resultN
ELSE default_result
END
Àý:
select product_id,product_type_id,
case product_type_id
when 1 then 'Book'
when 2 then 'Video'
when 3 then 'DVD'
when 4 then 'CD'
else 'Magazine'
end
from products
½á¹û:
PRODUCT_ID PRODUCT_TYPE_ID CASEPROD
---------- --------------- --------
1 1 &nbs ......
NULLÖ¸µÄÊÇ¿ÕÖµ£¬»òÕß·Ç·¨Öµ¡£
NVL (expr1, expr2)->expr1ΪNULL£¬·µ»Øexpr2£»²»ÎªNULL£¬·µ»Øexpr1¡£×¢ÒâÁ½ÕßµÄÀàÐÍÒªÒ»ÖÂ
NVL2 (expr1, expr2, expr3) ->expr1²»ÎªNULL£¬·µ»Øexpr2£»ÎªNULL£¬·µ»Øexpr3¡£expr2ºÍexpr3ÀàÐͲ»Í¬µÄ»°£¬expr3»áת»»Îªexpr2µÄÀàÐÍ
NULLIF (expr1, expr2) ->ÏàµÈ·µ»ØNULL£¬²»µÈ·µ»Øexpr1
ÏêϸµÄ::
oracleµÄnvlº¯ÊýµÄÓ÷¨
ͨ¹ý²éѯ»ñµÃij¸ö×ֶεĺϼÆÖµ£¬Èç¹ûÕâ¸öֵλnull½«¸ø³öÒ»¸öÔ¤ÉèµÄĬÈÏÖµ
select nvl(sum(t.dwxhl),1) from tb_jhde t where
zydm=-1ÕâÀï¹ØÐĵÄnvlµÄÓ÷¨£¬nvl£¨arg,value£©´ú±íÈç¹ûÇ°ÃæµÄargµÄֵΪnullÄÇô·µ»ØµÄֵΪºóÃæµÄvalue
Èç: NVL(a,b)¾ÍÊÇÅжÏaÊÇ·ñÊÇNULL,Èç¹û²»ÊÇ·µ»ØaµÄÖµ£¬Èç¹ûÊÇ·µ»ØbµÄÖµ
ͨ¹ý²éѯ»ñµÃij¸ö×ֶεĺϼÆÖµ£¬Èç¹ûÕâ¸öֵλnull½«¸ø³öÒ»¸öÔ¤ÉèµÄĬÈÏÖµ
select nvl(sum(t.dwxhl),1) from tb_jhde t where
zydm=-1ÕâÀï¹ØÐĵÄnvlµÄÓ÷¨£¬nvl£¨arg,value£©´ú±íÈç¹ûÇ°ÃæµÄargµÄֵΪnullÄÇô·µ»ØµÄֵΪºóÃæµÄvalue
ÖйúÍø¹ÜÁªÃË
ÁíÒ»¸öÓйصÄÓÐÓ÷½·¨
declare
i integer
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where
zydm=-1ÕâÑù¾Í¿ÉÒÔ°Ñ»ñµÃµÄºÏ¼ÆÖµ´æ´¢µ½±äÁ¿iÖУ¬È ......
oracle10g´´½¨Óû§
Oracle10g µÄ´´½¨Óû§Ãû
1¡¢ linux Ï oracle µÄÆô¶¯
ÒÔ oracle Éí·ÝµÇ¼
Æô¶¯ lsnrctl start
怬 sqplus /nolog
Á¬½ÓÊý¾Ý¿â connect /as sysdba
Æô¶¯Êý¾Ý¿â startup
¹Ø±ÕÊý¾Ý¿â shutdown immediate
2¡¢ ÔÚÊý¾ÝÖд´½¨Óû§Ãû
Æô¶¯Êý¾Ý¿âºó´´½¨Óû§Ãû
Á¬½Ó³¬¼¶Óû§ connect system/admin system ϵͳÓû§Ãû×Ö admin ÃÜÂë
´´½¨Óû§Ãû×Ö create user sha identified by admin Óû§Ãû£º sha ÃÜÂë :admin
¿ÉÒÔд Default tablespace user // Ö¸¶¨´æ´¢¶ÔÏóʹÓõÄĬÈϿռä±í ĬÈÏÊÇ system
Temporary tablespace temp; // ±£´æÁÙʱ¶ÔÏóËùʹÓõĿռä±í ĬÈÏÊÇ system
ÉÏÃæµÄÁ©ÐУ¬¿ÉÒÔд ¿Õ¼ä±íΪ user ÁÙʱΪ temp £»²»Ð´¾ÍĬÈÏ
3 ......
ÏÞÖÆË÷ÒýÊÇһЩûÓоÑéµÄ¿ª·¢ÈËÔ±¾³£·¸µÄ´íÎóÖ®Ò»¡£ÔÚSQLÖÐÓкܶàÏÝÚå»áʹһЩË÷ÒýÎÞ·¨Ê¹Óá£ÏÂÃæÌÖÂÛһЩ³£¼ûµÄÎÊÌ⣺
1 ʹÓò»µÈÓÚ²Ù×÷·û(<>¡¢!=)
ÏÂÃæµÄ²éѯ¼´Ê¹ÔÚcust_ratingÁÐÓÐÒ»¸öË÷Òý£¬²éѯÓï¾äÈÔȻִÐÐÒ»´ÎÈ«±íɨÃè¡£
select cust_Id,cust_name from customers where cust_rating <> 'aa';
°ÑÉÏÃæµÄÓï¾ä¸Ä³ÉÈçϵIJéѯÓï¾ä£¬ÕâÑù£¬ÔÚ²ÉÓûùÓÚ¹æÔòµÄÓÅ»¯Æ÷¶ø²»ÊÇ»ùÓÚ´ú¼ÛµÄÓÅ»¯Æ÷£¨¸üÖÇÄÜ£©Ê±£¬½«»áʹÓÃË÷Òý¡£
select cust_Id,cust_name from customers where cust_rating < 'aa' or cust_rating > 'aa';
ÌØ±ð×¢Ò⣺ͨ¹ý°Ñ²»µÈÓÚ²Ù×÷·û¸Ä³ÉORÌõ¼þ£¬¾Í¿ÉÒÔʹÓÃË÷Òý£¬ÒÔ±ÜÃâÈ«±íɨÃè¡£
2 ʹÓÃIS NULL »òIS NOT NULL
ʹÓÃIS NULL »òIS NOT NULLͬÑù»áÏÞÖÆË÷ÒýµÄʹÓá£ÒòΪNULLÖµ²¢Ã»Óб»¶¨Òå¡£ÔÚSQL ......
select * from (select t.*,rownum rn from (select * from emp) t where rownum<=10) where rn>=6;
´´½¨·ÖÒ³½á¹û¼¯µÄÓαê
create or replace package fenyepackage as
type testcursor is ref cursor;
end fenyepackage;
´´½¨·ÖÒ³´æ´¢¹ý³Ì
create or replace procedure fenye3(
tableName varchar2, --±íÃû
currPage number, --µ±Ç°Ò³
currPageSize number, --Ò³´óС
countRows out number, --×ܼǼÊý
countPages out number, --×ÜÒ³Êý
fenyecursor out fenyepackage.testcursor --µ±Ç°Ò³½á¹û¼¯
)is
v_sql varchar2(1000);
v_begin number:=(currPage-1)*currPageSize + 1;
v_end number:=currPage*currPageSize;
begin
v_sql:='select * from (select t.*,rownum rn from (select * from '|| tableName ||') t where rownum<='|| v_end ||')
where rn>='||v_begin;
......
ÔÚORACLEÖиø±í¡¢ÁÐÔö¼Ó×¢ÊÍÒÔ¼°¶ÁȡעÊÍ
1¡¢¸ø±íÌî¼Ó×¢ÊÍ£ºSQL>comment on table ±íÃû is '±í×¢ÊÍ";
2¡¢¸øÁмÓ×¢ÊÍ£ºSQL>comment on column ±í.ÁÐ is 'ÁÐ×¢ÊÍ';
3¡¢¶ÁÈ¡±í×¢ÊÍ£ºSQL>select * from user_tab_comments where comments is not null;
4¡¢¶ÁÈ¡ÁÐ×¢ÊÍ£ºSQL>select * from user_col_commnents where comments is not null and table_name='±íÃû';
¸½±íUSER_TAB_COMMENTSºÍuser_col_commentsµÄ½á¹¹£º
1¡¢user_tab_commentsÓÉtable_name¡¢table_typeºÍcommentsÈý²¿·Ö×é³É¡£
2¡¢user_col_commentsÓÉtable_name¡¢column_nameºÍcommentsÈý²¿·Ö×é³É¡£
3¡¢ÔÚSQL*PLUSÖÐÏÔʾ±í½á¹¹£ºdesc ±íÃû;
±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/wsw002/archive/2005/11/14/529186.aspx ......