Oracle SQLʵÀý
1¡£select * from a where a.rowid=(select min(b.rowid) from b where a.id=b.id);
create test1(
nflowid number primary key,
ndocid number,
drecvdate date);
insert into test1 values (1, 12301, sysdate) ;
insert into test1 values (2, 12301, sysdate);
select * from test1 order by drecvdate:
result:
nflowid ndocid drecvdate
1 12301 2010-2-1
2 12301 2010-2-2
ÒªÇó: ¸ù¾ÝNDOCIDΪ²éѯÌõ¼þ, DRECVDATEÅÅÐò,ÏÔÊ¾ÖØ¸´Êý¾ÝÖÐ×îСµÄÄÇÌõ¼Ç¼
String sql1 = "select * from test1 where ndocid=12301 order by decvdate";
String sql2 = "select * from (" + sql1 + ") a where a.rowid=" +
"(select min(b.rowid) from (" + sql1 + ") b " +
"where a.ndocid=b.ndocid)";
Òªµã: 1. nflowid ÊÇPK, Èç¹û²»ÊÇPK, ÔòÓпÉÄܻᱨ¸æORA-1445 ´íÎó
2. ´ËÓï¾ä,²»¹ÜNFLOWID=1µÄDRECVDAGTE±ÈNFLOWID=2µÄDRECVDATEÔ绹ÊÇÍí,¶¼·µ»Ø:
1, 12301 2010-2-1. ÔÒòÎÒ¾õµÃ:Õâ¸öROWIDÃ²ËÆ¾ÍÊÇNFLOWIDµÄÖµ
String agentSql = "select u.*, e.ndeputyentityid, e.nentityid " +
"from tbuser u, tbuser_role ur, doc_dept_deputy e " +
"where u.userid = ur.userid " +
"and u.currententityid = e.ndeputyentityid " +
"and ur.roleid=" + roleId;
String aSql = "select * from(" + agentSql + ") a where " +
"a.userpriority=(select min(b.userpriority) from(" + agentSql + ") b " +
"where a.ndeputyentityid = b.ndeputyentityid) " +
"and a.userid=(select min(b.userid) from(" + agentSql + ") b " +
"where a.ndeputyentityid = b.ndeputyentityid and a.userpriority = b.userpriority)";
Òªµã£º
1£© Èç¹ûuserpriorityûÓÐÖØ¸´Öµ£¬Ôò½á¹û·µ»Øuserpriority×îСֵµÄ¼Ç¼
2£© Èç¹ûuserpriorityÓÐÖØ¸´Öµ£¬Ôò½á¹û·µ»Øuserid×îСֵµÄ¼Ç¼
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
-- Create the user
create user SMCQUERY
identified by SMCQUERY;
-- Grant/Revoke role privileges
grant connect to SMCQUERY;
-- Grant/Revoke system privileges
grant select any table to SMCQUERY;
grant debug any procedure to SMCQUERY;
grant debug connect session to SMCQUERY;
grant cr ......
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)
......
·ÖÒ³²éѯ¸ñʽ£º
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
ÆäÖÐ×îÄÚ²ãµÄ²éѯSELECT * from TABLE_NAME±íʾ²»½øÐзҳµÄÔʼ²éѯÓï¾ä¡£ROWNUM <= 40ºÍRN >= 21¿ØÖÆ·ÖÒ³²éѯµÄÿҳµÄ·¶Î§¡£
ÉÏÃæ¸ø³öµÄÕâ¸ö·ÖÒ³²éѯÓï¾ä£¬ÔÚ´ó¶à ......
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......