ÈíÑ¶ÍøÂç > ³åÀ˱¦µä > ÍøÂç×ÊÔ´ > OracleѧϰժҪϵÁÐ002
¡¾±ê Ìâ¡¿£ºOracleѧϰժҪϵÁÐ002
¡¾¹Ø¼ü×Ö¡¿£º
Oracle,002
¡¾À´ Ô´¡¿£ºhttp://www.cublog.cn/u/10926/showart.php?id=122081
OracleѧϰժҪϵÁÐ002
- UPDATE
T_PAYMENT
SET
"FEE_CALC_DATE" = to_date(?, 'YYYY/MM/DD HH24:MI:SS')
WHERE
(T_PAYMENT."COMPANY_CD", T_PAYMENT."SLIP_TYP", T_PAYMENT."SLIP_CTRL_GRP", T_PAYMENT."SLIP_DATE", T_PAYMENT."SLIP_CD", T_PAYMENT."SEQ_NO") IN (
SELECT
T_PAYMENT."COMPANY_CD",
T_PAYMENT."SLIP_TYP",
T_PAYMENT."SLIP_CTRL_GRP",
T_PAYMENT."SLIP_DATE",
T_PAYMENT."SLIP_CD",
T_PAYMENT."SEQ_NO"
FROM
T_PAYMENT,
M_BANK_H,
M_BANK,
M_B_ACCT,
M_BANK_H M_BANK_H2,
M_BANK M_BANK2
WHERE
T_PAYMENT.PAY_BANK_CD = M_BANK_H.BANK_CD(+)
AND T_PAYMENT.PAY_BANK_CD = M_BANK.BANK_CD(+)
AND T_PAYMENT.PAY_BRANCH_CD = M_BANK.BANK_BR_CD(+)
AND T_PAYMENT.PAY_OWN_B_ACCT_CD = M_B_ACCT.B_ACCT_CTRL_CD(+)
AND M_B_ACCT.BANK_CD = M_BANK_H2.BANK_CD(+)
AND M_B_ACCT.BANK_CD = M_BANK2.BANK_CD(+)
AND M_B_ACCT.BANK_BR_CD = M_BANK2.BANK_BR_CD(+)
AND T_PAYMENT.COMPANY_CD = ?
AND T_PAYMENT.PAY_FIX_CTRL_ORG_CD = ?
AND((? = '1'
AND T_PAYMENT.PAY_DATE <= TO_DATE(?, 'YYYY/MM/DD'))
OR ((? = '2'
OR ? = '3')
AND T_PAYMENT.PAY_DATE BETWEEN TO_DATE(?, 'YYYY/MM/DD') AND TO_DATE(?, 'YYYY/MM/DD')))
AND(T_PAYMENT.PAY_TARGET_TYP = '1'
OR T_PAYMENT.PAY_TARGET_TYP = '12')
AND T_PAYMENT.DEL_FLG <> '1'
AND M_B_ACCT.COMPANY_CD = ?
AND((? = '1'
AND T_PAYMENT.FEE_CALC_DATE IS NULL)
OR (? = '2'
AND T_PAYMENT.FEE_CALC_DATE IS NOT NULL))
) - ʹÓÃTRANSLATE()º¯Êý
TRANSLATE(x, from_string, to_string)º¯ÊýÔÚxÖвéÕÒfrom_stringÖеÄ×Ö·û,²¢½«Æäת»»³Éto_stringÖжÔÓ¦µÄ×Ö·û.
ÏÂÃæÕâ¸öÀý×ÓÓÃTRANSLATE()½«SECRET MESSAGE:MEET ME IN THE PARKÖеÄÿһ¸ö×Ö·û¶¼×ª»»³É×Öĸ±íÖÐÆäºóÃæµÚËĸö×Öĸ:½«A±ä³ÉE¡¢B±ä³ÉF£¬ÒÀ´ÎÀàÍÆ£º
SELECT TRANSLATE('SECRET MESSAGE:MEET ME IN THE PARK',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'EFGHIJKLMNOPQRSTUVWXYZABCD')
FROM dual; - ʹÓÃDECODE()º¯Êý
DECODE(value, search_value, result, default_value)¶ÔvalueÓësearch_value½øÐбȽϡ£Èç¹ûÕâÁ½¸öÖµÏàµÈ£¬DECODE()·µ»Øresult£¬·ñÔò¾Í·µ»Ødefault_value¡£DECODE()ÔÊÐíÔÚSQLÖÐÖ´ÐÐif-then-elseÀàÐ͵ÄÂß¼´¦Àí£¬¶ø²»ÐèҪʹÓÃPL/SQL¡£
SELECT DECODE(1, 1, 2, 3)
FROM dual;
ÉÏÃæµÄÀý×ÓÖУ¬DECODE()·µ»ØÖµÎª2£¬ÒòΪ¶Ô1Óë1½øÐбȽϣ¬ÓÉÓÚÕâÁ½ÕßÏàµÈ£¬Òò´Ë·µ»Ø2¡£
¿ÉÒÔÏòDECODE()´«µÝ¶à¸öËÑË÷ºÍ½á¹û²ÎÊý£¬
SELECT product_id, product_type_id,
DECODE(product_type_id,
1, 'Book',
2, 'Video',
3, 'DVD',
4, 'CD',
'Magazine')
FROM products; - ʹÓÃCASE±í´ïʽ
CASE±í´ïʽ¿ÉÒÔÔÚSQLÖÐʵÏÖif-then-elseÐ͵ÄÂß¼£¬¶ø²»±ØÊ¹ÓÃPL/SQL¡£CASEµÄ¹¤×÷·½Ê½ÓëDECODE()ÀàËÆ£¬µ«ÊÇÎÒÃÇÓ¦¸ÃʹÓÃCASE£¬ÒòΪËüÓëANSI¼æÈÝ¡£
ÓÐÁ½ÖÖÀàÐ͵ÄCASE±í´ïʽ£º
- ¼òµ¥case±í´ïʽ£¬Ê¹Óñí´ïʽȷ¶¨·µ»ØÖµ¡£
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN result2
...
WHEN expressionN THEN resultN
ELSE default_result
END
- ËÑË÷case±í´ïʽ£¬Ê¹ÓÃÌõ¼þÈ·¶¨·µ»ØÖµ¡£
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
- ²ã´Î»¯²éѯ
- ʹÓÃÀ©Õ¹µÄGROUP BY×Ó¾ä