create table test (id int, name varchar(10) )
梁子湖網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)建站于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
insert into test values (1,'a')
insert into test values (1,'b')
insert into test values (1,'c')
insert into test values (2,'a')
insert into test values (2,'b')
insert into test values (3,'a')
insert into test values (3,'c')
select id,sys_connect_by_path(name,',') from (
select id,name, row_number() over(partition by id order by name)rn,
count(*) over(partition by id ) cnt from test
) a where level=cnt
start with rn=1 connect by prior id=id and prior rn=rn-1
測試后 可用。
一樓的回答其實最容易理解了。你把它修改成動態(tài)sql 就可以了。可以不受限制了。
select?t.*?from?t1?t?where?regexp_like(t.str,'[ac]');
oracle中的函數(shù)regexp_like,很好用的哦,其中[ac]為正則表達(dá)式,意思是,在str字段的數(shù)據(jù)里,匹配有包含a或者c的數(shù)據(jù)。具體請在網(wǎng)上查詢oracle數(shù)據(jù)庫中regexp_like函數(shù)的應(yīng)用,希望能幫助你。
用length可查到具體有多少個字符。
select length('abcdefgh') from dual;
如果是從一個表中取一個字段,查這個字段的數(shù)據(jù)長度:
select length(a.name) from table a;
1、當(dāng)時間條件字段為字符串類型的時候,通過以下方法查詢數(shù)據(jù):
1.1、SELECT * FROM 表名 t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd')
between to_date('2017/8/1','yyyy/MM/dd') and to_date('2017/11/1','yyyy/MM/dd');
1.2、SELECT * FROM zsd018a t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd hh24:mi:ss')
between to_date('2017/8/1','yyyy/MM/dd hh24:mi:ss') and to_date('2017/11/1','yyyy/MM/dd hh24:mi:ss');
2、當(dāng)時間條件為date類型的時候,通過以下方法查詢數(shù)據(jù):
select * from zmm028 where to_char(tkdat,'YYYY-MM-DD')='2017-10-01'
and to_char(tkdat,'YYYY-MM-DD')='2017-11-02' ;
用 regexp_like這個函數(shù)來解決,正則表達(dá)式為:[[:punct:]]+這個正則可以找出任何標(biāo)點符號。
查詢value中包含任何標(biāo)點符號的記錄如下:
select * from xxx where regexp_like(value,'[[:punct:]]+');
POSIX 正則表達(dá)式由標(biāo)準(zhǔn)的元字符(metacharacters)所構(gòu)成: '$' 匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。 '?' 匹配前面的子表達(dá)式零次或一次。 '*' 匹配前面的子表達(dá)式零次或多次。
'|' 指明兩項之間的一個選擇。例子'^([a-z]+|[0-9]+)$'表示所有小寫字母或數(shù)字組合成的 '( )' 標(biāo)記一個子表達(dá)式的開始和結(jié)束位置。 '{m,n}' 一個精確地出現(xiàn)次數(shù)范圍,m=出現(xiàn)次數(shù)=n,'{m}'表示出現(xiàn)m次,'{m,}'表示至少出現(xiàn)m次。
\num 匹配 num,其中 num 是一個正整數(shù)。對所獲取的匹配的引用。 [[:alpha:]] 任何字母。
[[:digit:]] 任何數(shù)字。
[[:alnum:]] 任何字母和數(shù)字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大寫字母。
[[:lower:]] 任何小寫字母。
[[:punct:]] 任何標(biāo)點符號。
[[:xdigit:]] 任何16進(jìn)制的數(shù)字,相當(dāng)于[0-9a-fA-F]。 \轉(zhuǎn)義符 *, +, ?, {n}, {n,}, {n,m} 限定符^, $, anymetacharacter 位置和順序。
查找位置的函數(shù)為instr函數(shù)。下標(biāo)以1開始,如果不存在則返回0。
舉例如下:
1、創(chuàng)建測試表,
create table test_instr(str varchar2(20));
2、插入測試數(shù)據(jù)
insert into test_instr values ('abc');
insert into test_instr values ('cdaf');
insert into test_instr values ('bbed');
3、查詢表的記錄,select t.*, rowid from test_instr t;
4、編寫sql,查找字母'a'在表中各記錄的位置;
select t.*, instr(str,'a') location from test_instr t,可以發(fā)現(xiàn),最后一條記錄,不存在該字符的話,則返回0。
當(dāng)前題目:oracle符串怎么查詢,oracle字符串查找函數(shù)
文章地址:http://chinadenli.net/article10/phgido.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站制作、品牌網(wǎng)站設(shè)計、響應(yīng)式網(wǎng)站、網(wǎng)站維護(hù)、移動網(wǎng)站建設(shè)
聲明:本網(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)