SQL 之 concat_ws和concat的区别

concat_ws和concat都是用于连接字符串的函数,但它们在使用上有一些区别:

一、concat、concat_ws函数格式:

concat格式: concat(参数1,参数2,…参数n),如果要加’分隔符’直接写在 各参数中间就行
concat_ws格式: concat_ws(分隔符,参数1,参数2,…参数n)

二、两者区别

  1. 能否拼接INT类型
    concat(1, ‘,’, 2) -> 可以
    concat_ws(1, ‘,’, 2) -> 不可以
    得知,concat是可以执行成功的。由此得出 concat可以直接将 INT类型拼接成STRING,STRING拼接成STRING 更不再话下了;而concat_ws不可以直接拼接INT类型,它要求拼接的类型 必须都得是STRING类型,才能在hive执行。

样例(有需要可以自己写几个测试):

concat(1, ',', 2) -> 1,2 (STRING类型)
concat_ws(1, ',', 2) -> 报错

concat_ws报错:
在这里插入图片描述

报错显示concat_ws只支持STRING 或者 array

  1. 拼接NULL
    concat(1, null, 2) -> 结果: null
    concat_ws(’,’, ‘1’, null, ‘2’) -> 结果:1,2
    得知,concat拼接时,只要参数中有null(有一个null即可),不管有多少不为空的参数,结果都为null;concat_ws遇到参数有null时,则会忽略,不会返回null。

样例(有需要可以自己写几个测试):

concat(1, null, 2) -> null
concat_ws(',', '1', null, '2') -> 1,2
  1. 分隔符的概念:concat_ws函数允许用户指定一个分隔符(separator),该分隔符将用于在连接字符串时插入到各个字符串之间。这意味着concat_ws函数可以生成带有分隔符的连接结果,而concat函数则没有这个功能,它只是简单地将字符串连接在一起,不考虑任何分隔符。

  2. 处理NULL值的方式:当concat函数遇到NULL值时,无论其他参数是否为非空,整个结果都将返回NULL。而concat_ws函数在遇到NULL值时则会忽略它,不会因为单个NULL值而导致整个结果返回NULL。这意味着,即使参数中包含NULL,concat_ws也能生成一个有效的连接结果。

  3. 参数灵活性:concat_ws函数在处理参数时比concat函数更加灵活。concat函数要求所有参数都必须是非空的,否则结果将为NULL。而concat_ws函数则允许参数中包含NULL值,它会在处理时忽略这些NULL值,只连接非NULL的参数。

综上所述,选择使用concat还是concat_ws函数取决于具体的需求:如果需要连接字符串并希望它们之间有分隔符,或者希望在参数中包含NULL值时仍然得到一个有效的结果,那么应该使用concat_ws函数。如果不需要分隔符,且可以接受在参数中有NULL时整个结果变为NULL的情况,那么可以使用concat函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/41831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于微信支付-商户平台:查询订单提示“查询失败:操作失败,请稍候重试”的分析

目录 引子 分析 应对 小结 引子 在开发和实施微信 JSAPI 支付的应用后,我们遇到了一些问题,订单的状态更新不正常,当然我们首先需要从自身寻找原因和完善解决问题的办法和方案。在支付的过程中,客户会给我们一些反馈&#xf…

Open-Sora1.2环境搭建推理测试

引子 前阵子写了一篇Open-Sora1.0环境搭建&推理测试(Open-Sora1.0环境搭建&推理测试_自己搭建sora服务-CSDN博客,感兴趣的童鞋,请移步)。Open-Sora1.1发布的时候,撇了一眼新闻。后面一转头,忘记这…

ARL联动AWVS实现自动化漏洞扫描

0x01 前言 很多场景下需要大范围的扫描漏洞和快速排查互联网暴露面的漏洞,需要使用这种自动化的手段,常规渗透测试的找互联网暴露面是,域名>子域名>IP>C段>端口,可以手动收集,也可以借助一些网络搜索引擎…

css中伪元素 :: before的用法

在CSS中&#xff0c;伪元素 ::before 用于在选定元素的内容前插入内容。它常用于添加图标、文本或装饰性的元素&#xff0c;而不需要在HTML中实际添加额外的标签。 以下是一个示例说明 ::before 的用法&#xff1a; <!DOCTYPE html> <html lang"en"> &…

一文解决Postman请求发送难题

标题&#xff1a;【技术深度解析】一文解决Postman请求发送难题 在API开发和测试过程中&#xff0c;Postman作为一款强大的工具&#xff0c;其重要性不言而喻。然而&#xff0c;开发者们时常会遇到Postman无法发送请求的问题&#xff0c;这无疑会严重影响开发进度和测试效率。…

wordpress网站添加一个临时维护功能

把以下代码放到functions.php文件中&#xff0c;主要用网站临时维护或者用于备案。事情做好了&#xff0c;把以下代码删除即可&#xff01;&#xff01;&#xff01; 有时遇到一些情况&#xff0c;比如站点需要闭站备案、或者被要求停站等等&#xff0c;我们就可以使用本文的功…

开发个人Go-ChatGPT--5 模型管理 (三)

开发个人Go-ChatGPT–5 模型管理 (三) 服务部署 go-ChatGPT项目涉及的中间件服务较多&#xff0c;以下部署文件目录&#xff1a; |-- chat-api | |-- etc | | -- config.yaml | -- logs |-- chat-rpc | |-- etc | | -- config.yaml | -- logs |-- docker-co…

CP AUTOSAR标准之UDPNetworkManagement(AUTOSAR_CP_SWS_UDPNetworkManagement)(更新中……)

1 简介和功能概述 本文档介绍了AUTOSAR UDP网络管理(UdpNm)的概念、核心功能、可选功能、接口和配置问题。UdpNm旨在成为一项可选功能。它旨在与TCP/IP堆栈协同工作,独立于所用通信系统的物理层。AUTOSAR UDP网络管理是一种独立于硬件的协议,可用于基于TCP/IP的系统(有关限制…

卡尔曼滤波Q和R怎么调

卡尔曼滤波器是一种有效的估计算法&#xff0c;主要用于在存在噪声的环境中估计动态系统的状态。它通过结合预测模型&#xff08;系统动态&#xff09;和观测数据&#xff08;包括噪声&#xff09;来实现这一点。在卡尔曼滤波中&#xff0c;调整过程噪声协方差矩阵 ( Q ) 和测量…

Java中的标准输入流简述

System.in简介 System.in 是标准输入流&#xff0c;通常与键盘输入相关联。它是 InputStream 类型的对象&#xff0c;Java 使用它来从控制台接收用户输入。在 Java 程序中&#xff0c;通常使用 Scanner 类来读取 System.in 的输入。 以下是一些关键点&#xff0c;解释为什么需…

Kubernetes运维工程师必备:K8s 基础面试题精编(一)

Kubernetes运维工程师必备:K8s 基础面试题精编(一) 1. 什么是Kubernetes?2. Kubernetes如何实现容器编排?3. 说出k8s的常见资源对象?4. 什么是pod?5. Deployment介绍及使用?6. statefulesets介绍及使用?7. statefulesets和deployment区别?8. 什么是调度器(Scheduler…

The First项目报告:NvirWorld与区块链游戏的未来

根据官方公告&#xff0c;The Fisrt现货区将于2024年7月2日16:00上架NVIR/USDT交易对&#xff0c;NVIR是NvirWorld平台的原生代币。作为一个去中心化解决方案&#xff0c;NvirWorld为开发者提供了一个简化且适应性强的环境&#xff0c;旨在通过优化的扩展解决方案来降低交易成本…

docker 本地部署大模型(ollama)

docker 安装 ollama docker search ollama docker pull ollama/ollama###docker下载ollama部署 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama### 下载模型 docker exec -it ollama ollama pull llama3### 交互式运行模型docker exec -i…

ECharts 最小高度设置指南

下面提供一份关于ECharts中设置最小高度的专业而详细的文档。这份文档将涵盖不同图表类型的最小高度设置方法&#xff0c;适合初学者学习和参考。 ECharts 最小高度设置指南 1. 通用属性 对于大多数图表类型&#xff0c;可以使用以下通用属性来控制最小高度&#xff1a; 1.…

算法 —— 二分查找

目录 二分查找 在排序数组中查找元素的第一个和最后一个位置 搜索插入位置 x的平方根 山峰数组的峰顶索引 寻找峰值 搜索旋转排序数组中的最⼩值 点名 二分查找模板分为三种&#xff1a;1、朴素的二分模板 2、查找左边界的二分模板 3、查找右边界的二分模板&#xf…

【基于R语言群体遗传学】-12-超显性与次显性

欢迎先看前面的博客&#xff0c;再继续进行后面的内容&#xff1a; 群体遗传学_tRNA做科研的博客-CSDN博客 当杂合子的适应度超出纯合子的范围时&#xff0c;二倍体能够展现出更多令人着迷的选择实例。这种形式的一种是杂合子优势&#xff0c;或称为“超显性”&#xff0c;其…

【包邮送书】AIGC时代程序员的跃迁——编程高手的密码武器

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

深入了解 Huber 损失函数

深入了解 Huber 损失函数 在机器学习和深度学习的训练过程中&#xff0c;选择合适的损失函数对于模型性能的提升至关重要。MSE&#xff08;均方误差&#xff09; 和 RMSE&#xff08;均方根误差&#xff09; 是我们常见的回归损失函数。然而&#xff0c;当数据中存在异常值&am…

无线麦克风哪个品牌音质最好,揭秘手机收音麦克风哪个牌子好!

随着全球直播和短视频行业的蓬勃发展&#xff0c;领夹麦克风因其便携性和出色的录音质量而备受青睐。用户在各种场合下追求清晰、真实的录音效果&#xff0c;领夹麦克风无疑是一个理想的选择。 然而&#xff0c;面对市场上琳琅满目的品牌和型号&#xff0c;想要挑选一款性能优…

C++和Python蚂蚁搬食和蚊虫趋光性和浮标机群行为算法神经网络

&#x1f3af;要点 &#x1f3af;机器人群行为配置和C行为实现&#xff1a;&#x1f58a;脚底机器人狭隘空间导航避让障碍物行为 | &#x1f58a;脚底机器人使用摄像头耦合共振&#xff0c;实现同步动作 | &#x1f58a;脚底机器群使用相机&#xff0c;计算彼此间“分子间势能…