OracleÖкϲ¢×Ö·û´®×ܽá
ÔÚÊý¾Ý¿âÖо³£ÒªºÏ²¢×Ö·û´®£¬¶øºÏ²¢×Ö·û´®µÄ·½·¨Óкܶ࣬ÏÖÔÚ×ܽáÈçÏ£º
--´´½¨»á»°¼¶ÁÙʱ±í
create global temporary table TMPA
(
ID INTEGER,
NAME VARCHAR2(10)
)
on commit preserve rows;
--²åÈë¼Ç¼
insert into tmpa select 1,'aa' from dual;
insert into tmpa select 1,'bb' from dual;
insert into tmpa select 1,'cc' from dual;
insert into tmpa select 2,'dd' from dual;
insert into tmpa select 2,'ee' from dual;
insert into tmpa select 3,'ff' from dual;
commit;
--1¡¢sys_conect_by_path·½·¨
select id,max(ltrim(sys_connect_by_path(name,','),',')) as group_name
from
(
select a.*,row_number()over(partition by id order by name) as row_num
from tmpa a
) a
group by id
start with row_num=1
connect by prior id=id and prior row_num= row_num-1
--2¡¢wm_concat·½·¨
select id,wm_concat(name) as group_name from tmpa
group by id;
--3¡¢×Ô¶¨Ò庯Êý·¨
--¶¨Ò庯Êý
create function group_concat(vid number)
return varchar2
as
vResult varchar2(100);
begin
for cur in (select name from tmpa where id=vid) loop
vResult := vResult||cur.name;
end loop;
return vResult;
end;
--²éѯ
select id,group_concat(id) as group_name from tmpa
group by id;
--²éѯµÄ½á¹û
ID GROUP_NAME
1 aa,bb,cc
2 dd,ee
3 ff
Ïà¹ØÎĵµ£º
declare
sqlstring varchar2(100);
emprow emp_bak%rowtype;
myno emp_bak.empno%type;
begin
--sqlstring:='create table emp_bak as select * from emp';
sqlstring:='select * from emp_bak where empno=:myno and sal>:mysal';
myno:='&ÇëÊäÈëÔ±¹¤±àºÅ';
--¶¯Ì¬SQ ......
ת×Ô£ºhttp://www.91linux.com/html/article/database/oracle/20081205/14333.html
proc oracle Á¬½ÓÊͷŲ»Á˵ÄÎÊÌâ
±ÊÕß¹«Ë¾µÄÓ¦ÓÃϵͳÿ¸ôÒ»¶Îʱ¼ä£¬oracleÁ¬½Ó¾Í´ïµ½ÉÏÏÞÁË£»»³ÒÉÊÇÓ¦ÓÃûÓÐÕýÈ·µÄÊÍ·ÅoracleÁ¬½Ó£»ËµÀ´²ÑÀ¢£¬proc¶Ï¶ÏÐøÐøµÄÓÃÁ˼¸Ä꣬¿É
ÄÜÊÇÒÔǰ¹«Ë¾µÄ´úÂëдµÃÌ«ºÃÁË£¬´ÓûÓÐÈ¥¹ØÐÄ»ù±¾µÄprocÁ¬½Ó¡¢Ê ......
ÔÚOracleÖУº
¡¡¡¡Ë«ÒýºÅµÄ×÷ÓÃÊÇ£ºÈç¹û´´½¨¶ÔÏóµÄʱºò£¬¶ÔÏóÃû¡¢×Ö¶ÎÃû¼ÓË«ÒýºÅ£¬Ôò±íʾOracle½«ÑϸñÇø·Ö´óСд£¬·ñÔòOracl¶¼Ä¬ÈÏ´óд¡£
¡¡¡¡¶øµ¥ÒýºÅÔò±íʾ£ºÕâ¸ö¼ÓÁ˵¥ÒýºÅµÄ×Ö¶ÎÊÇÒ»¸ö×ÖÀàËÆ×Ö·û´®£¬²¢²»Çø·Ö´óСд¡£
¡¡¡¡µ¥ÒýºÅÓÃÓÚ±êʶ×Ö·ûÓëÊý×ÖµÄÇø±ð
¡¡¡¡µ±Ö¸¶¨×Ö·û´®Îı¾Ê±£¬±ØÐëÓõ¥ÒýºÅ½«×Ö·û´®Îı¾Òýס¡£
......
1. ASCII
·µ»ØÓëÖ¸¶¨µÄ×Ö·û¶ÔÓ¦µÄÊ®½øÖÆÊý;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2. CHR
¸ø³öÕûÊý,·µ»Ø¶ÔÓ¦µÄ×Ö·û;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- ......
ƽʱÓõıȽ϶àµÄ£¬¾ÍÊÇNVL£¬Ã»ÔõôÔÚÒâÆäËû¼¸¸ö¡£
NVL ¾Í²»ÓÃ˵ÁË£¬¾ÍÊÇÅжϵÚÒ»¸öÊÇ·ñΪNULL£¬ÊǾÍÓõڶþ¸ö´úÌæ£¬²»ÊǾͷµ»ØµÚÒ»¸ö¡£
NVL2 Ò²ÊÇÅжϵÚÒ»¸öÊÇ·ñΪNULL£¬µ«ÊÇ·µ»ØÖµÈ´²»Í¬¡£µÚÒ»¸öΪNULL£¬¾Í·µ»ØµÚÈý¸ö£¬·ñÔò·µ»ØµÚ¶þ¸ö¡£
NULLIF ÅжÏÁ½¸ö²ÎÊýÊÇ·ñÏàµÈ£¬ÏàµÈ·µ»ØNULL£¬·ñÔò·µ»ØµÚÒ»¸ö²ÎÊý¡£
COALESCE Õâ ......