日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql拼接同一字段_sql多个字段拼接

發布時間:2023/12/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql拼接同一字段_sql多个字段拼接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. MySQL

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

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

+-----------+--------+

| '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語句用于將用戶的多個字段信息以一個字段的形式查詢出來:

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

+----------------------------------------------------------+

| 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:

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

總結

以上是生活随笔為你收集整理的sql拼接同一字段_sql多个字段拼接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。