mysql 更改查詢結果追加值,sql多個字段拼接

sql多個字段拼接  

2012-01-05 14:05:47|  分類: 數據庫 |  標籤: |字號 訂閱 sql

1. MySQL 數據庫

在Java等編程語言彙總字符串的拼接能夠經過加號「+」來實現,好比:"1"+"3"、"a"+"b"。在MySQL中也能夠使用加號「+」來鏈接兩個字符串好比下面的SQL: 編程

SELECT '12'+'33', FAge+'1' FROM T_Employee app


+-----------+--------+
| '12'+'33' | FAge+1 |
+-----------+--------+
|        45 |     26 |
|        45 |     29 |
|        45 |   NULL |
|        45 |     24 |
|        45 |     26 |
|        45 |     29 |
|        45 |     28 |
|        45 |     26 |
|        45 |     36 |
+-----------+--------+

編程語言

 

  仔細觀察第一列,驚訝嗎?這個列的現實結果並非咱們但願的「1233」,而是把「12」和「33」兩個字符串當成數字來求兩個數的和了;將一個數字與一個字符串用加號「+」連接也是一樣的效果,好比這裏的第二列。 函數

  在MySQL中進行字符串的拼接要使用CONCAT()函數,CONCAT()函數支持一個或者多個參數,參數類型能夠爲字符串類型也能夠是非字符串類 型。對於非字符串類型的參數MySQL將嘗試將其轉化爲字符串類型,CONCAT()函數會將全部參數按照參數的順序拼接成一個字符串做爲返回值。好比下 面的SQL語句用於將用戶的多個字段信息以一個字段的形式查詢出來: spa

SELECT CONCAT('Staff Number :', 'Happiness Index', FNumber, FSalary/(FAge-21)) from t_employee blog


+----------------------------------------------------------+
| concat                                                   |
+----------------------------------------------------------+
| Staff number: Happiness index of DEV001 is 2075.000000   |
| Staff number: Happiness index of DEV002 is 328.571429    |
| NULL                                                                                     |
| Staff number: Happiness index of HR001 is 2150.000000    |
| Staff number: Happiness index of HR002 is 825.000000     |
| Staff number: Happiness index of IT001 is 785.714286     |
| Staff number: Happiness index of IT002 is 466.666667     |
| Staff number: Happiness index of SALES001 is 1325.000000 |
| Staff number: Happiness index of SALES002 is 592.857143  |
+----------------------------------------------------------+
字符串

 

MYSQL中還提供了另一個進行字符串拼接的函數CONCAT_WS,CONCAT_WS能夠在待拼接的字符串之間加入指定的分割符。它的第一個參數值爲採用的分隔符,而剩下的參數則爲待拼接的字符串值,好比執行下面的SQL: get

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.00                     |
| DEV003, Development, 3333.00                         |
| HR001, 23, HumanResource, 4300.00                    |
| HR002, 25, HumanResource, 3300.00                    |
| IT001, 28, InfoTech, 5500.00                         |
| IT002, 27, InfoTech, 2800.00                         |
| SALES001, 25, Sales, 5300.00                         |
| SALES002, 35, Sales, 8300.00                         |
+------------------------------------------------------+

 

2. Oracle

Oracle中使用雙豎槓"||"進行字符串拼接。好比下面的SQL語句:

SELECT '工號爲' || FNumber || '的員工姓名爲'||FName FROM T_employee where fname is not null

 

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

SELECT CONCAT('工號: ' , FNumber) FROM T_Employee

 

與MySQL的CONCAT()函數不一樣,Oracle的CONCAT()函數只支持兩個參數,不支持兩個以上的字符串的拼接

若是要進行多個字符串的拼接的話,能夠將多個CONCAT()函數嵌套使用,上面的SQL能夠改寫以下:

SELECT CONCAT(CONCAT(CONCAT('工號爲', FNumber), '的員工姓名爲'), FName) FROM T_Employee WHERE FName IS NOT NULL

相關文章
相關標籤/搜索