select
substr('A123456',instr('A123456','A')+1,len('A123456')-instr('A123456','A'))
from
al
instr
返回1,
所以給它+1
,
從第2位開始截取到總長度-『A』這個字元串的位置,
就是
6
,
所以最終會是
select
substr('A123456',2,6)
from
al
這么寫能明白嗎?
㈡ Oracle 根據某標識符截取字元串問題,求SQL語句
create table test (col1 varchar2(20));
insert into test values ('1;2;3');
select col1 from
(select substr(t.ca,instr(t.ca, ';', 1, c.lv) + 1,instr(t.ca, ';', 1, c.lv + 1) - (instr(t.ca, ';', 1, c.lv) + 1)) AS col1
from
(select ';' || col1 || ';' AS ca,length(col1 || ';') - nvl(length(REPLACE(col1, ';')), 0) AS cnt FROM test) t,
(select LEVEL lv from al CONNECT BY LEVEL <= 100) c where c.lv <= t.cnt);
貌似只能放到一個列中
㈢ 請問下面的sql語句(oracle)如何書寫,與字元串截取相關。
個人看法:
你的字元串每個前都有一個+
所以先截取掉這個+
然後把字元串轉成整數試試
to_number(substr(『+000000570
』))
㈣ SQL字元串截取(oracle資料庫)
select substr('A123456',instr('A123456','A')+1,len('A123456')-instr('A123456','A'))
from al
instr 返回1, 所以給它+1 , 從第2位開始截取到總長度-『A』這個字元串的位置, 就是 6 ,
所以最終會是
select substr('A123456',2,6) from al
這么寫能明白嗎?
㈤ Oracle SQL截取字元串
--創建一張臨時表,用來存在
1,23,456,7890這個字元串
create
table
test_20110420(strint_test
varchar2(50));
--把1,23,456,7890
這個字元串寫入到臨時表
insert
into
test_20110420
values('1,23,456,7890');
--一個SQL語句查詢出來
select
substr(a.strint_test,1,instr(a.strint_test,',')-1)
from
test_20110420
a
union
all
select
substr(a.strint_test,instr(a.strint_test,',',1,1)+1,instr(a.strint_test,',',1,2)-1-instr(a.strint_test,',',1,1))
from
test_20110420
a
union
all
select
substr(a.strint_test,instr(a.strint_test,',',1,2)+1,instr(a.strint_test,',',1,3)-1-instr(a.strint_test,',',1,2))
from
test_20110420
a
union
all
select
substr(a.strint_test,instr(a.strint_test,',',1,3)+1)
from
test_20110420
a
;
㈥ Oracle中如何截取字元串的後10位
1、使用Oracle語句select substr('12345',greatest( -位數,-length('12345')),位數) from al。輸入後程序會自動截取該字元串的指定長度。
2、表達式中的「位數」輸入格式是數字形式。如截取後10位,則輸入數字10,也可以使用這個語句substr(字元串,截取開始位置,截取長度)。
3、這個公式需要注意的是,若最後一個截取長度參數為空,則表示從截取開始位置起截到最末。若截取開始位置 為大於0的數字,則表示從字元串左數幾位開始。若截取開始位置 為小於0的數字,則表示從字元串右數幾位開始。
(6)oracle中的字元串截取sql語句擴展閱讀:
字元串的轉化方法如下:
可以用 (string) 標記或者strval()函數將一個值轉換為字元串。當某表達式需要字元串時,字元串的轉換會在表達式范圍內自動完成。例如當使用echo()或者print()函數時,或者將一個變數值與一個字元串進行比較的時候。閱讀手冊中有關類型和類型戲法中的部分有助於更清楚一些。參見settype()。
布爾值TRUE將被轉換為字元串 "1",而值FALSE將被表示為 ""(即空字元串)。這樣就可以隨意地在布爾值和字元串之間進行比較。
整數或浮點數數值在轉換成字元串時,字元串由表示這些數值的數字字元組成(浮點數還包含有指數部分)。
數組將被轉換成字元串 "Array",因此無法通過echo()或者print()函數來輸出數組的內容。請參考下文以獲取更多提示。
對象將被轉換成字元串 "Object"。如果因為調試需要,需要將對象的成員變數列印出來,請閱讀下文。如果希望得到該對象所依附的類的名稱,請使用函數get_class()。自 php 5 起,如果合適可以用 __toString() 方法。
資源類型總是以 "Resource id #1" 的格式被轉換成字元串,其中 1 是 php 在運行時給資源指定的唯一標識。如果希望獲取資源的類型,請使用函數get_resource_type()。
NULL將被轉換成空字元串。
正如以上所示,將數組、對象或者資源列印出來,並不能提供任何關於這些值本身的有用的信息。請參閱函數print_r()和var_mp(),對於調試來說,這些是更好的列印值的方法。
可以將 php 的值轉換為字元串以永久地儲存它們。這種方法被稱為序列化,可以用函數serialize()來完成該操作。如果在安裝 php 時建立了 WDDX 支持,還可以將 php 的值序列化為 XML 結構。
Oracle的功能:
資料庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。
控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。alter system set control_files=『路徑』。V$CONTROLFILE。
數據文件:存儲數據,以.dbf做後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。dba_data_files/v$datafile。
日誌文件:即Redo Log Files和Archivelog Files。記錄資料庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數文件:記錄基本參數。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享伺服器連接。
跟蹤文件:show parameter user_mp_dest---使用專用伺服器連接。
㈦ 截取一個字元串的最後6位sql語句怎麼寫
看了一下回答,我還是說幾句吧,希望有所幫助。 對SQl字元串的截取現在有兩種方法, 一種是:用right函數。 如果你的字元串已經讀取到的話,假如放在strings自己定義的變數裡面就可以用:select right('strings',4) 此函數返回的結果是,字元串strings的最後四位,如果strings不足四位或剛好四位,則全部返回。 如果你的字元串是從表中讀取出來的話,可以先定義一個變數declare @string 把查詢出的字元串賦值過去,使用:select right('@string',4),就可以了,理解同上。 另一種是:用substring函數 select substring('1234567',len('1234567')-4,4) 返回的結果是:『4567』 或用上面的自定義變數才存儲查詢出來的字元串。小小一例:godeclare @string char(10)set @string='1234567' ----可以是一條sql語句,返回的結果是一個字元串select substring('1234567',len('1234567')-4,4)go應該清楚了吧? ^_^ 要是有什麼不清楚的,隨時Hi我 相互學習!
㈧ oracle資料庫的sql語句問題:用substr()方法截取字元串,字元串的第一位是0還是1,網上說0,我試一下是1
select
substr('a123456',instr('a123456','a')+1,len('a123456')-instr('a123456','a'))
from
al
instr
返回1,
所以給它+1
,
從第2位開始截取到總長度-『a』這個字元串的位置,
就是
6
,
所以最終會是
select
substr('a123456',2,6)
from
al
這么寫能明白嗎?
㈨ oracle中如何截取字元串中,某個字元前的字元串 例如截取字元串210-1106000001中「-」前的字元串
oracle中,截取某個字元串前的字元需要用instr函數和substr函數共同完成。
工具:oracle 10g
步驟:
1、以截取字元串「210-1106000001」中「-」前的部分為例。
2、執行語句為:
selectsubstr('210-1106000001',1,instr('210-1106000001','-')-1)fromal;
3、結果為:
substr函數語法:substr(strings|express,m,[n])
參數含義:
strings|express :被截取的字元串或字元串表達式。
m 從第m個字元開始截取。
n 截取後字元串長度為n。
㈩ Oracle SQL從含數字的字元串中,截取出非數字字元
這個只能祭出強大的正則表達式了,字元的正a-z A-Z ,篩選的正則表達式為regexp_substr(欄位,'.*[a-zA-z]')