200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > sql拼接同一字段_sql多个字段拼接

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

时间:2020-02-19 13:07:00

相关推荐

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。