SQL---CONCAT系列函数

如题所述

MYSQL里的CONCAT函数用于将两个字符串连接起来,形成一个单一的字符串。

如下面的例子:

mysql> select concat('11','22','33');

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

| concat('11','22','33') |

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

| 112233 |

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

1 row in set (0.00 sec)

MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

mysql> select concat('11','22',null);

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

| concat('11','22',null) |

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

| NULL   |

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

1 row in set (0.00 sec)

MySQL中concat_ws函数

使用方法:

contcat_ws(separator,str1,str2,...)

contcat_ws() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

如连接后以逗号分隔

mysql> select concat_ws(',','11','22','33');

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

| concat_ws(',','11','22','33') |

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

| 11,22,33 |

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

1 row in set (0.00 sec)

和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL 

mysql> select concat_ws(',','11','22',NULL);

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

| concat_ws(',','11','22',NULL) |

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

| 11,22 |

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

1 row in set (0.00 sec)

HQL里的CONCAT函数大致用法更SQL的相同

我使用的常用形式为:

select a, b, concat_ws(',' , collect_set(cast(c as string)))

from table group by a,b;

上文HQL中collect_set 有两个作用,第一个是 去重 ,去除group by后的重复元素,

第二个是形成一个 集合 ,将group by后属于同一组的第三列集合起来成为一个集合。与contact_ws

结合使用就是将这些元素以逗号分隔形成字符串。当使用collect_list是则不会去重,它会将第三列的集合全部都列出来

cast  ,用法cast(value as type),将某个列的值显示的转化为某个类型,cast(age as string ) 将int类型的数据转化为了String类型。
温馨提示:内容为网友见解,仅供参考
第1个回答  2023-05-04
mysql中,只要拼接字符串中有null,则为null。

SQL---CONCAT系列函数
contcat_ws() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。注意:如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数...

SQL学习笔记之一--concat_ws
CONCAT_WS是SQL中一个用于连接多个字符串的函数,它能将字符串以指定分隔符进行分隔。函数语法如下:忽略参数中的NULL值,且在非空参数间插入分隔符。最终返回连接后的字符串。示例:使用逗号作为分隔符,连接字符串'John'、'Doe'和'1980-01-01'。最终结果为'John,Doe,1980-01-01'。

sql语言中的concat函数和nvl函数二者有什么区别?
完全不同的两个函数,concat函数是把参数转化成字符串然后连接起来返回,如果有参数中有一个是Null的话就返回null,concat('A','B')返回结果就是'AB',Nvl函数是返回Null的替代值,有两个参数,例如 Nvl(Parameter1,Parameter2),如果Parameter1是Null,那就返回Parameter2,如果Parameter1不是Null,...

SQL字符串拼接函数concat()、collect_set()、collect_list()和concat...
concat()函数和concat_ws()函数在字符串拼接上存在显著差异。concat()函数在连接字符串时,只要任一元素为NULL,结果就会返回NULL。而concat_ws()函数即使有一个字符串非NULL,也不会返回NULL。此外,concat_ws()函数需要指定一个分隔符,且分隔符不能为null,否则结果将返回null。collect_set()和colle...

SQL中字符串的连接
在MYSQL中字符串连接使用的是concat内置函数。CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来,不过,在Oracle中,可以用'||'来一次串连多个字串。

SQL语句-如何拼接多列的值?
使用concat函数进行字段拼接,语法如下:对表中的name、age字段进行拼接:结果:3、在PostgreSQL、Oracle中进行串联拼接 使用||符号进行字段拼接,语法如下:对表中的name、age字段进行拼接:4、在SQL Server中进行串联拼接 使用+符号进行字段拼接,语法如下:对表中的name、age字段进行拼接:需要注意的是,...

mysql concat函数 什么问题?
字符串连接起来 SQL 语句是没有问题的。看具体什么错误了。

sqlite 含有concat函数吗
SQLite确实包含了concat函数,你可以用它来合并字符串。例如,原SQL语句为:select concat('a', 'b') as mix; 可以简化为:select 'a'||'b' as mix; 这两个表达方式在功能上是等效的。然而,SQLite中并没有名为concatsubstr的函数,取而代之的是substr函数,它用于提取字符串的一部分。substr(...

concat函数是计算日期的吗?
concat函数是计算日期的。CONCAT函数不仅是针对计算日期的,concat函数还是一个SQL字符串函数,可将两个或两个以上的字符表达式连接成一个字符串,并且CONCAT函数还具有连接数值的功能。concat 函数一般用在SELECT 查询语法中,用于修改返回字段内容。concat函数与concatenate函数的区别 在于concat函数可以直接连接...

mysql中的concat用法!
MySQL中的concat用法是用来连接字符串的。具体操作步骤如下:一、基本语法 在MySQL中,可以使用CONCAT函数来连接一个或多个字符串。其基本语法为:sql CONCAT 其中,string1、string2等是要连接的字符串。该函数将返回所有字符串连接后的结果。二、使用示例 假设有一个名为"users"的表,其中包含"name"...

相似回答
大家正在搜