字符串的拼接html
1,Mysqlsql
在Java、C#等編程語言中字符串的拼接能夠經過加號「+」來實現,好比:"1"+"3"、"a"+"b"。
在MYSQL中也能夠使用加號「+」來鏈接兩個字符串,好比下面的SQL: 編程
- SELECT '12'+'33',FAge+'1' FROM T_Employee
執行結果oracle
- '12'+'33' FAge+'1'
- 45 26
- 45 29
- 45 24
- 45 26
- 45 29
- 45 28
- 45 24
- 45 29
- 45 23
MYSQL會嘗試將加號兩端的字段值嘗試轉換爲數字類型,若是轉換失敗則認爲字段值爲
0,好比咱們執行下面的SQL語句: 編程語言
- SELECT 'abc'+'123',FAge+'a' FROM T_Employee
執行完畢咱們就能在輸出結果中看到下面的執行結果: 函數
- 'abc'+'123' FAge+'a'
- 123 25
- 123 28
- 123 23
- 123 25
- 123 28
- 123 27
- 123 23
- 123 28
- 123 22
在MYSQL中進行字符串的拼接要使用CONCAT函數,CONCAT函數支持一個或者多個參數,
參數類型能夠爲字符串類型也能夠是非字符串類型,對於非字符串類型的參數MYSQL將嘗試
將其轉化爲字符串類型,CONCAT函數會將全部參數按照參數的順序拼接成一個字符串作爲
返回值。好比下面的SQL語句用於將用戶的多個字段信息以一個計算字段的形式查詢出來:spa
- SELECT CONCAT('工號爲:',FNumber,'的員工的幸福指數:',FSalary/(FAge-21))
FROM T_Employee 執行完畢咱們就能在輸出結果中看到下面的執行結果:htm
- CONCAT('工號爲:',FNumber,'的員工的幸福指數:',FSalary/(FAge-21))
- 工號爲:DEV001的員工的幸福指數:2075.000000
- 工號爲:DEV002的員工的幸福指數:328.685714
- 工號爲:HR001的員工的幸福指數:1100.440000
MYSQL中還提供了另一個進行字符串拼接的函數CONCAT_WS,
CONCAT_WS能夠在待拼接的字符串之間加入指定的分隔符,它的第一個參數值爲採用的分
隔符,而剩下的參數則爲待拼接的字符串值,好比執行下面的SQL: blog
- SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee
執行完畢咱們就能在輸出結果中看到下面的執行結果:字符串
- CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary)
- DEV001,25,Development,8300.00
- DEV002,28,Development,2300.80
- HR001,23,HumanResource,2200.88
- HR002,25,HumanResource,5200.36
- IT001,28,InfoTech,3900.00
- IT002,27,InfoTech,2800.00
- SALES001,23,Sales,5000.00
- SALES002,28,Sales,6200.00
- SALES003,22,Sales,1200.00
2,oracle
Oracle中使用「||」進行字符串拼接,其使用方式和MSSQLServer中的加號「+」同樣。
好比執行下面的SQL語句:
- SELECT '工號爲'||FNumber||'的員工姓名爲'||FName FROM T_Employee
- WHERE FName IS NOT NULL
執行完畢咱們就能在輸出結果中看到下面的執行結果:
- 工號爲||FNUMBER||的員工姓名爲||FNAME
- 工號爲DEV001的員工姓名爲Tom
- 工號爲DEV002的員工姓名爲Jerry
- 工號爲SALES001的員工姓名爲John
- 工號爲SALES002的員工姓名爲Kerry
- 工號爲SALES003的員工姓名爲Stone
- 工號爲HR001的員工姓名爲Jane
- 工號爲HR002的員工姓名爲Tina
- 工號爲IT001的員工姓名爲Smith
除了「||」,Oracle還支持使用CONCAT()函數進行字符串拼接,好比執行下面的SQL語句:
- SELECT CONCAT('工號:',FNumber) FROM T_Employee
執行完畢咱們就能在輸出結果中看到下面的執行結果:
- CONCAT(工號:,FNUMBER)
- 工號:DEV001
- 工號:DEV002
- 工號:HR001
- 工號:HR002
- 工號:IT001
- 工號:IT002
- 工號:SALES001
- 工號:SALES002
- 工號:SALES003
若是CONCAT中鏈接的值不是字符串,Oracle會嘗試將其轉換爲字符串,
與MYSQL的CONCAT()函數不一樣,Oracle的CONCAT()函數只支持兩個參數,不支持兩個以
上字符串的拼接。若是要進行多個字符串的拼接的話,能夠使用多個CONCAT()函數嵌套使用。
- SELECT CONCAT(CONCAT(CONCAT('工號爲',FNumber),'的員工姓名爲'),FName) FROM
- T_Employee
- WHERE FName IS NOT NULL
執行完畢咱們就能在輸出結果中看到下面的執行結果:
- CONCAT(CONCAT(CONCAT(工號爲,FNUMBER),的員工姓名爲),FNAME)
- 工號爲DEV001的員工姓名爲Tom
- 工號爲DEV002的員工姓名爲Jerry
- 工號爲SALES001的員工姓名爲John
- 工號爲SALES002的員工姓名爲Kerry
- 工號爲SALES003的員工姓名爲Stone
- 工號爲HR001的員工姓名爲Jane
- 工號爲HR002的員工姓名爲Tina
- 工號爲IT001的員工姓名爲Smith