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.pswp.cn/web/41831.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41831.shtml
英文地址,請注明出處:http://en.pswp.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;計算彼此間“分子間勢能…