[轉]mysql中的字符串的拼接


字符串的拼接

1,Mysql

  在Java、C#等編程語言中字符串的拼接可以通過加號“+”來實現,比如:"1"+"3"、"a"+"b"。
在MYSQL中也可以使用加號“+”來連接兩個字符串,比如下面的SQL: 

Sql代碼   收藏代碼
  1. SELECT '12'+'33',FAge+'1' FROM T_Employee   

 執行結果

Sql代碼   收藏代碼
  1. '12'+'33'  FAge+'1'   
  2. 45    26   
  3. 45  29   
  4. 45  24   
  5. 45  26   
  6. 45  29   
  7. 45  28   
  8. 45  24   
  9. 45  29   
  10. 45  23   

 
MYSQL會嘗試將加號兩端的字段值嘗試轉換為數字類型,如果轉換失敗則認為字段值為
0,比如我們執行下面的SQL語句: 

Sql代碼   收藏代碼
  1. SELECT 'abc'+'123',FAge+'a' FROM T_Employee   

 

  執行完畢我們就能在輸出結果中看到下面的執行結果:  

Html代碼   收藏代碼
  1.    
  2. 'abc'+'123'  FAge+'a'   
  3. 123  25   
  4. 123  28   
  5. 123  23   
  6. 123  25   
  7. 123  28   
  8. 123  27   
  9. 123  23   
  10. 123  28   
  11. 123  22   

   在MYSQL中進行字符串的拼接要使用CONCAT函數,CONCAT函數支持一個或者多個參數,
參數類型可以為字符串類型也可以是非字符串類型,對於非字符串類型的參數MYSQL將嘗試
將其轉化為字符串類型,CONCAT函數會將所有參數按照參數的順序拼接成一個字符串做為
返回值。比如下面的SQL語句用於將用戶的多個字段信息以一個計算字段的形式查詢出來:

Sql代碼   收藏代碼
  1. SELECT CONCAT('工號為:',FNumber,'的員工的幸福指數:',FSalary/(FAge-21))   

 

FROM T_Employee  執行完畢我們就能在輸出結果中看到下面的執行結果:

Java代碼   收藏代碼
  1. CONCAT('工號為:',FNumber,'的員工的幸福指數:',FSalary/(FAge-21))   
  2. 工號為:DEV001的員工的幸福指數:2075.000000   
  3. 工號為:DEV002的員工的幸福指數:328.685714   
  4. 工號為:HR001的員工的幸福指數:1100.440000   

MYSQL中還提供了另外一個進行字符串拼接的函數CONCAT_WS,
CONCAT_WS可以在待拼接的字符串之間加入指定的分隔符,它的第一個參數值為采用的分
隔符,而剩下的參數則為待拼接的字符串值,比如執行下面的SQL: 

Sql代碼   收藏代碼
  1. SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee   

 

  執行完畢我們就能在輸出結果中看到下面的執行結果:

Java代碼   收藏代碼
  1. CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary)   
  2. DEV001,25,Development,8300.00   
  3. DEV002,28,Development,2300.80   
  4. HR001,23,HumanResource,2200.88   
  5. HR002,25,HumanResource,5200.36   
  6. IT001,28,InfoTech,3900.00   
  7. IT002,27,InfoTech,2800.00   
  8. SALES001,23,Sales,5000.00   
  9. SALES002,28,Sales,6200.00   
  10. SALES003,22,Sales,1200.00   

 

2,oracle

  Oracle中使用“||”進行字符串拼接,其使用方式和MSSQLServer中的加號“+”一樣。
比如執行下面的SQL語句:

Sql代碼   收藏代碼
  1. SELECT '工號為'||FNumber||'的員工姓名為'||FName FROM T_Employee   
  2. WHERE FName IS NOT NULL   

 

執行完畢我們就能在輸出結果中看到下面的執行結果:

Html代碼   收藏代碼
  1. 工號為||FNUMBER||的員工姓名為||FNAME   
  2. 工號為DEV001的員工姓名為Tom   
  3. 工號為DEV002的員工姓名為Jerry   
  4. 工號為SALES001的員工姓名為John   
  5. 工號為SALES002的員工姓名為Kerry   
  6. 工號為SALES003的員工姓名為Stone   
  7. 工號為HR001的員工姓名為Jane   
  8. 工號為HR002的員工姓名為Tina   
  9. 工號為IT001的員工姓名為Smith   

   除了“||”,Oracle還支持使用CONCAT()函數進行字符串拼接,比如執行下面的SQL語句:

Sql代碼   收藏代碼
  1. SELECT CONCAT('工號:',FNumber) FROM T_Employee   

 

執行完畢我們就能在輸出結果中看到下面的執行結果:

Html代碼   收藏代碼
  1. CONCAT(工號:,FNUMBER)   
  2. 工號:DEV001   
  3. 工號:DEV002   
  4. 工號:HR001   
  5. 工號:HR002   
  6. 工號:IT001   
  7. 工號:IT002   
  8. 工號:SALES001   
  9. 工號:SALES002   
  10. 工號:SALES003    

 如果CONCAT中連接的值不是字符串,Oracle會嘗試將其轉換為字符串,

  與MYSQL的CONCAT()函數不同,Oracle的CONCAT()函數只支持兩個參數,不支持兩個以
上字符串的拼接。如果要進行多個字符串的拼接的話,可以使用多個CONCAT()函數嵌套使用。

Sql代碼   收藏代碼
  1. SELECT CONCAT(CONCAT(CONCAT('工號為',FNumber),'的員工姓名為'),FName) FROM   
  2. T_Employee   
  3. WHERE FName IS NOT NULL   

 

執行完畢我們就能在輸出結果中看到下面的執行結果:

Html代碼   收藏代碼
  1. CONCAT(CONCAT(CONCAT(工號為,FNUMBER),的員工姓名為),FNAME)   
  2. 工號為DEV001的員工姓名為Tom   
  3. 工號為DEV002的員工姓名為Jerry   
  4. 工號為SALES001的員工姓名為John   
  5. 工號為SALES002的員工姓名為Kerry   
  6. 工號為SALES003的員工姓名為Stone   
  7. 工號為HR001的員工姓名為Jane   
  8. 工號為HR002的員工姓名為Tina   
  9. 工號為IT001的員工姓名為Smith   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM