create table stuu(code char(4), course_id varchar2(50),cdate date); --創(chuàng)建表
成都創(chuàng)新互聯(lián)公司成立10余年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計、域名與空間、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補等服務(wù)。網(wǎng)站是否美觀、功能強大、用戶體驗好、性價比高、打開快等等,這些對于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過對建站技術(shù)性的掌握、對創(chuàng)意設(shè)計的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。
--插入測試數(shù)據(jù)
insert into stuu(code,course_id,cdate) values('1','1001',sysdate);
insert into stuu(code,course_id,cdate) values('2','1001,1002',sysdate);
insert into stuu(code,course_id,cdate) values('3','1001,1002,1003',sysdate);
create table cours(id char(4),cname varchar2(10));--創(chuàng)建表
--插入測試數(shù)據(jù)
insert into cours(id,cname) values('1001','語文');
insert into cours(id,cname) values('1002','數(shù)學(xué)');
insert into cours(id,cname) values('1003','英語');
--先將課程表組合成各種方式的連接,然后再與學(xué)生表進行對比查詢出想要的數(shù)據(jù)
select s.code,s.course_id,s.cdate,ss.cname from stuu s,
((select id,cname from cours) union all
(select
a.id||','||b.id id,
a.cname||','||b.cname cname
from cours a,cours b where a.id b.id)
union all
(select
a.id||','||b.id||','||c.id id,
a.cname||','||b.cname||','||c.cname cname
from
cours a,
cours b,
cours c
where a.id b.id and b.id c.id)) ss where s.course_id=ss.id
--已經(jīng)測試過了,能查詢出來的
是否可以解決您的問題?
是否可以用 like ‘%1%’作為條件來查詢。
其實,不太了解分開查詢的意思。能舉個例子嗎
變成全角的,或者把逗號轉(zhuǎn)碼,例如:qt; 插入數(shù)據(jù)庫存儲,讀出的時侯再轉(zhuǎn)碼
--通過游標遍歷調(diào)用方法拆取存表:
--方法
create or replace function f_test_substr(
prm1 varchar2,??? --地
prm2 varchar2 ,?? --名稱
prm3 varchar2,??? --IP
prm4 varchar2??? --結(jié)果
)
return varchar2
as
v_n int:=0;? --第幾次取
v_l int;? --:截取次數(shù)
v_s varchar2(2000);? --處理拆分字符串
v_s1 varchar2(200);? --本次拆分
v_s2 varchar2(200);? --本次剩余
v_type varchar2(100);? --設(shè)備類型
v_code varchar2(100);? --設(shè)備編號
v_desc varchar2(100);? --設(shè)備描述
v_errmsg varchar2(200);
begin
v_l:=length(prm4)-length(replace(prm4,';',''));
v_s:=prm4||';';
v_s1:=substr(v_s,1,instr(v_s,';',1,1));
v_s2:=replace(v_s,v_s1,'');
while v_n=v_l loop
v_s2:=replace(v_s2,v_s1,'');
v_s1:=substr(v_s1,1,length(v_s1)-1);
v_type:=substr(v_s1,1,instr(v_s1,',',1,1)-1);
v_code:=substr(v_s1,instr(v_s1,',',1,1)+1,instr(v_s1,',',1,2)-instr(v_s1,',',1,1)-1);
v_desc:=substr(v_s1,instr(v_s1,',',1,2)+1,instr(v_s1||',',',',1,3)-instr(v_s1,',',1,2)-1);
insert into t_test_str(a,b,c,d,e,f) values(prm1,prm2,prm3,substr(v_type,instr(v_type,']',1)+1),v_code,v_desc);
v_n:=v_n+1;
v_s1:=substr(v_s2,1,instr(v_s2,';',1,1));
end loop;
commit;
return '成功';
exception
when others then
v_errmsg:=substr(sqlerrm,1,200);
return v_errmsg ;
end;
--存過
create or replace procedure p_test_substr1(o_result out varchar2)
as
v_a varchar2(20);
v_b varchar2(20);
v_c varchar2(20);
v_d varchar2(2000);
v_num int;
cursor c_str is
SELECT * from t_test_substr
;
begin
select count(1) into v_num from t_test_substr;
while v_num0 loop
open c_str;
loop
FETCH c_str INTO
v_a,v_b,v_c,v_d;
EXIT WHEN c_str%NOTFOUND;
o_result:=f_test_substr(v_a,v_b,v_c,v_d);
v_num:=v_num-1;
end loop;
CLOSE c_str;
end loop;
end;
效果見圖:
select rn
REGEXP_SUBSTR(a, '[^,]+', 1, LEVEL) STR
from (select a,rownum rn from t)
CONNECT BY LEVEL = REGEXP_COUNT( a, ',') + 1
and rn= prior rn
and prior dbms_random.value is not null;
名稱欄目:oracle逗號怎么存儲,oracle逗號拼接
網(wǎng)頁路徑:http://jinyejixie.com/article22/dsdjscc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、服務(wù)器托管、網(wǎng)站排名、網(wǎng)站維護、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)