首页 > 数据库 >SQL concat函数和concat_ws函数的区别

SQL concat函数和concat_ws函数的区别

时间:2023-06-14 23:22:31浏览次数:53  
标签:函数 拼接 ws 分隔符 null concat

总结

相同点:都是将几个字符串拼接在一起的函数
异同点:

  1. 拼接的字符串中有null值时,返回结果不一样
  2. 参数代表的含义不一样。concat中的参数都是要拼接的,concat_ws的第一个参数是分隔符,后面才是要拼接的

concat函数

是将数据集的几个列拼接成一列。

concat(col1, col2, ..., colN) - Returns the concatenation of col1, col2, ..., colN.

https://spark.apache.org/docs/latest/api/sql/#concat
但是当某一列的值为null值时,即便其他列有值,那么也会返回null值。

SELECT concat("A", null ) from input1  


那么如果,想忽略null值,返回有值的部分,可以加一个coalesce函数:

SELECT concat("A", coalesce(null,"") ) from input1 

concat_ws函数

作用也是将数据集的几个列拼接成一列,但是可以一次性指定分隔符。第一个参数位置是指定的分隔符,之后的位置是要拼接的列。

concat_ws(sep[, str | array(str)]+) - Returns the concatenation of the strings separated by sep.
https://spark.apache.org/docs/latest/api/sql/#concat_ws
当某一列的值为null值时,concat_ws会跳过null值

SELECT concat_ws(",", "A", "B", "C", null) from input1  


ps: 分隔符为null时,返回null。

所以:
当要拼接的列中有null值时,可以用
1. concat("A", coalesce(null,"") )
2. concat_ws(",", "A", "B", "C", null)。 适用于一次性指定分隔符
3. concat("", "A", "-", "B", ",", "C", null), 适用于分隔符是不一样的

标签:函数,拼接,ws,分隔符,null,concat
From: https://www.cnblogs.com/tian1022/p/17481610.html

相关文章

  • aws athena创建表
    CREATEEXTERNALTABLElavalog.test_log(datestring,logstring)PARTITIONEDBY(yearint,monthint,dayint)ROWFORMATSERDE'org.openx.data.jsonserde.JsonSerDe'WITHSERDEPROPERTIES('ignore.malformed.json'='true')LOCATION'......
  • CSS(语义化标签、多媒体标签、新表单元素、属性选择器、结构伪类选择器、伪元素选择器
    一、HTML5新特性概述HTML5的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。这些新特性都有兼容性问题,基本是IE9+以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。1语义化标签(★★)以前布局,我们基本用div来做。di......
  • 【JS基础】Function构造函数
    Function()构造函数创建了一个新的Function对象,直接调用构造函数可以动态创建函数,与eval(可能访问到本地作用域)不同的是,Function构造函数只创建全局执行的函数。constsum=newFunction('a','b','returna+b')console.log(sum(1,2)); 参考:Function()构造函数-J......
  • 【python基础】函数-初识函数
    函数是带名字的代码块,用于完成具体的工作,无需反复编写完成该工作的代码。之前我们接触过print函数,数据类型转换中的int函数、str函数,还有列表中的append函数、pop函数、remove函数,以及字典中的keys函数、values函数等等,其实在正式学习函数之前,我们已经接触了函数,只不过没有接触过......
  • 机器学习模型中的损失函数loss function
    1.概述在机器学习算法中,有一个重要的概念就是损失函数(LossFunction)。损失函数的作用就是度量模型的预测值与真实值之间的差异程度的函数,且是一个非负实值函数。对于分类问题损失函数通常可以表示成损失项和正则项的和,即有如下的形式:其中,为损失项,为正则项。的具体形式如下:对于损失......
  • python基础知识——函数
    函数其实就是一段可以多次调用的代码。1、函数的定义格式def函数名(参数1[=默认值1],参数2[=默认值2],...):...return表达式函数名的命名规则:函数名可以是字母、数字或下划线组成的字符串,但是不能以数字开头。例如加法操作:defaddFunc(x,y):returnx+......
  • [C++/PTA] 计算点到直线的距离一一友元函数的应用
    题目要求计算点到直线的距离。首先设计一个点类Point,它有2个私有数据成员x和y,表示点的坐标。另一个类为直线类Line,它有3个私有数据成员a,b和c,表示直线方程ax+by+c=0。这两个类中都说明了一个友元函数dist,用于计算一个点到直线的距离。点(x.y)到直线ax+by+c=0的距离d的计算......
  • Windows安装多版本MySQL(命令行)
    注意:电脑上可以多个数据库版本共存,但是在初次安装执行mysqld-installmysql的时候需要将mysql替换为唯一的名字,并且环境变量只能配置一个1.windows中下载指定版本官网下载命令行版本:https://dev.mysql.com/downloads/mysql/解压到指定位置编写my.ini文件[mysqld]#设......
  • [C++/PTA] 虚函数的应用
    题目要求补充下列代码,使得程序的输出为:A:3A:15B:53155类和函数接口定义:参见裁判测试程序样例中的类和函数接口。裁判测试程序样例:#include<iostream>usingnamespacestd;classCMyClassA{intval;public:CMyClassA(int);voidvirtualprint();......
  • Windows server 2022 Datacenter 21h2 20230517 20348.1787
    Windowsserver2022Datacenter21h22023051720348.1787slmgr.vbs-dlv......