Oracle中SQL語句連接字符串的符號為||
我們提供的服務(wù)有:網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、江陽ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的江陽網(wǎng)站制作公司
復(fù)制代碼
代碼如下:
select
catstr(tcdm)
||
(',')
from
T_YWCJ_RWCJR
where
cjrjh='009846'
and
rwid='12050'
and
jsdm='CJY'
拼接成一條數(shù)據(jù)并連接一個","
和其他數(shù)據(jù)庫系統(tǒng)類似,Oracle字符串連接使用“||”進(jìn)行字符串拼接,其使用方式和MSSQLServer中的加號“+”一樣。
比如執(zhí)行下面的SQL語句:
SELECT '工號為'||FNumber||'的員工姓名為'||FName FROM T_Employee
WHERE FName IS NOT NULL
除了“||”,Oracle還支持使用CONCAT()函數(shù)進(jìn)行字符串拼接,比如執(zhí)行下面的SQL語句:
SELECT CONCAT('工號:',FNumber) FROM T_Employee
如果CONCAT中連接的值不是字符串,Oracle會嘗試將其轉(zhuǎn)換為字符串,比如執(zhí)行下面的SQL語句:
SELECT CONCAT('年齡:',FAge) FROM T_Employee
與MYSQL的CONCAT()函數(shù)不同,Oracle的CONCAT()函數(shù)只支持兩個參數(shù),不支持兩個以上字符串的拼接,比如下面的SQL語句在Oracle中是錯誤的:
SELECT CONCAT('工號為',FNumber,'的員工姓名為',FName) FROM T_Employee
WHERE FName IS NOT NULL
運行以后Oracle會報出下面的錯誤信息:
參數(shù)個數(shù)無效
如果要進(jìn)行多個字符串的拼接的話,可以使用多個CONCAT()函數(shù)嵌套使用,上面的SQL可以如下改寫:
代碼如下:
SELECT CONCAT(CONCAT(CONCAT('工號為',FNumber),'的員工姓名為'),FName) FROM
T_Employee
WHERE FName IS NOT NULL
使用正則表達(dá)式,將第一個符合括號內(nèi)的字符串取出來:
with ttt as
(select '測試串1(測試串2)測試串3' aa from dual
union all
select '測試串1(測試串2)測試串3' from dual
union all
select '測試串1(測試串2)測試串3' aa from dual
union all
select '測試串1(測試串2)測試串3' from dual
union all
select '測試串1(測試串2)測試串3(測試串4)測試串5' from dual
)
select substr(regexp_substr(aa,'[((][^()()]+',1,1),2)
from ttt
字符串拼接的函數(shù)是concat,但是這個函數(shù)有且只有兩個參數(shù)。有時不是那么好用。
平時我們用的||
用法是select a||b||c||d from table
a,b,c,d可以是字段可以是字符
如果Oracle版本不是太低的話,使用 正則表達(dá)式函數(shù) REGEXP_SUBSTR 處理。\x0d\x0a\x0d\x0a5個參數(shù)\x0d\x0a第一個是輸入的字符串\x0d\x0a第二個是正則表達(dá)式\x0d\x0a第三個是標(biāo)識從第幾個字符開始正則表達(dá)式匹配。(默認(rèn)為1)\x0d\x0a第四個是標(biāo)識第幾個匹配組。(默認(rèn)為1)\x0d\x0a第五個是是取值范圍:\x0d\x0ai:大小寫不敏感;\x0d\x0ac:大小寫敏感;\x0d\x0an:點號 . 不匹配換行符號;\x0d\x0am:多行模式;\x0d\x0ax:擴展模式,忽略正則表達(dá)式中的空白字符。\x0d\x0a\x0d\x0aSQL SELECT\x0d\x0a 2 REGEXP_SUBSTR(a,'[0-9]+')\x0d\x0a 3 FROM\x0d\x0a 4 test_reg_substr\x0d\x0a 5 WHERE\x0d\x0a 6 REGEXP_LIKE(a, '[0-9]+');
Oracle的字符串連接用 ||
select substr(t.name0,4) || '00' from table t
在oracle中拼接字符串可用concat函數(shù)或者用“||”來實現(xiàn)。
1、concat函數(shù)格式:concat(?string1,?string2?)
舉例:將字符a和字符b拼接
語句如下:
1select?concat('a','b')?from?dual;
結(jié)果:
2、“||”的格式:string1||string2||string3……
舉例:將字符a,字符b,字符c拼接
語句如下:
1select?'a'||'b'||'c'?from?dual;
查詢結(jié)果:
注意事項:concat只能用于2個字符的拼接,如多于2個字符,函數(shù)會報錯,但是“||”則可以拼接多個字符。
1.ORACLE數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。但它的所有知識,只要在一種機型上學(xué)習(xí)了ORACLE知識,便能在各種類型的機器上使用它。
2.Oracle數(shù)據(jù)庫最新版本為Oracle Database 12c。Oracle數(shù)據(jù)庫12c?引入了一個新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數(shù)據(jù)庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對數(shù)據(jù)分層。這些獨一無二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強,使得Oracle數(shù)據(jù)庫12c?成為私有云和公有云部署的理想平臺