SQL把字符串按逗号分割成记录

        在 SQL 中,可以通过以下方法将字符串按逗号分割,并将每个分割的值作为单独的记录插入到结果集中。以下是针对不同数据库系统的实现方法:


1. 使用 STRING_SPLIT(SQL Server 2016+)

   STRING_SPLIT 是 SQL Server 提供的内置函数,用于将字符串按分隔符拆分。

DECLARE @input_string NVARCHAR(MAX) = 'a,b,c,d,e'; SELECT value AS split_value 
FROM STRING_SPLIT(@input_string, ','); 
  • 结果
    split_value 
    ----------- a b c d e 

2. 使用 unneststring_to_array(PostgreSQL)

        在 PostgreSQL 中,可以通过 string_to_array 将字符串转换为数组,再用 unnest 展开数组为记录。

SELECT unnest(string_to_array('a,b,c,d,e', ',')) AS split_value; 
  • 结果
    split_value 
    ----------- a b c d e 

3. 使用 SPLIT(MySQL 8.0+ 或 MariaDB 10.4+ 的 JSON 功能)

         虽然 MySQL 本身没有直接的字符串分割函数,但可以结合 JSON 功能实现。

方法 1:JSON_TABLE(MySQL 8.0+)
SET @input_string = 'a,b,c,d,e'; 
SELECT split_value 
FROM JSON_TABLE( CONCAT('["', REPLACE(@input_string, ',', '","'), '"]'), '$[*]' COLUMNS (split_value VARCHAR(100) PATH '$') 
) AS jt; 
方法 2:递归 CTE(适用于更低版本 MySQL)
WITH RECURSIVE split_cte AS 
( SELECT SUBSTRING_INDEX('a,b,c,d,e', ',', 1) AS split_value, SUBSTRING_INDEX('a,b,c,d,e', ',', -1) AS remainder, 1 AS idx UNION ALL SELECT SUBSTRING_INDEX(remainder, ',', 1), CASE WHEN remainder = split_value THEN '' ELSE SUBSTRING_INDEX(remainder, ',', -1) END, idx + 1 FROM split_cte WHERE remainder <> split_value 
) SELECT split_value FROM split_cte; 

4. PL/SQL 分割函数(Oracle)

         在 Oracle 中,可以使用带递归的 PL/SQL 函数或 XML 解析来实现字符串分割。

方法:XMLTABLE
SELECT column_value AS split_value 
FROM XMLTABLE('a,b,c,d,e' RETURNING CONTENT BY ',' ); 

5. 程序语言辅助(Python、Java 等)

         如果数据库不提供内置函数,可以在应用程序中处理。例如,Python:

input_string = 'a,b,c,d,e' 
records = input_string.split(',') 
print(records) 

总结

  • SQL Server: STRING_SPLIT
  • PostgreSQL: string_to_array + unnest
  • MySQL 8.0+: JSON_TABLE
  • Oracle: XMLTABLE
  • 旧版数据库: 使用递归 CTE 或程序端辅助。

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

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

相关文章

大模型系列18-AI Agents

什么是AI Agents Al Agent智能体&#xff0c;是指一种能够模拟人类思考和行为来自动执行任务&#xff0c;以解决复杂问题的程序或系统 架构图 思考->行动->观测 思考依赖记忆以及规划决策&#xff0c;行动依赖工具&#xff0c;观测依赖感知 举例 长沙今天白天和晚上的…

mysql自定义安装

1、下载安装包 我是在windows上安装&#xff0c;所以选择“Mysql Installer for Windows” 2、安装mysql 双击“mysql-installer-community-8.0.40.0.msi”&#xff0c;开始启动安装 这里选择安装项&#xff0c;这里只选择了两项。workbench是图形化管理工具&#xff0c;比较吃…

22408操作系统期末速成/复习(考研0基础上手)

第一部分:计算题&#xff1a; 考察范围&#xff1a;&#xff08;标红的是重点考&#xff09; 第一章&#xff1a;CPU利用率&#xff1a; 第二章&#xff1a; 进程调度算法&#xff08;需要注意不同调度算法的优先级和题目中给出的是否可以抢占【分为可抢占和不可抢占&#xff…

数据去重与重复数据的高效处理策略

在实际业务中&#xff0c;数据去重是一个非常常见的需求&#xff0c;特别是在日志数据、用户操作记录或交易记录等领域。去重不仅仅是删除重复数据&#xff0c;更重要的是按照业务规则保留最有价值的数据记录。 本文将探讨如何在 SQL 中高效地处理重复数据&#xff0c;通过 DI…

综合能源建模:理论、方法与实践

一、引言 随着全球能源需求的持续增长以及对能源安全、环境保护和可持续性发展的日益关注&#xff0c;综合能源系统&#xff08;Integrated Energy System&#xff0c;IES&#xff09;作为一种能够整合多种能源资源、实现能源高效利用和协同优化的解决方案&#xff0c;正逐渐成…

【Leetcode 热题 100】74. 搜索二维矩阵

问题背景 给你一个满足下述两条属性的 m n m \times n mn 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 t a r g e t target target&#xff0c;如果 t a r g e t target target 在矩阵中&…

DOS攻击的原理和实现 (网络安全)hping3和Slowloris的运用

DoS攻击的原理和实现 DoS攻击&#xff08;Denial of Service Attack&#xff0c;拒绝服务攻击&#xff09;是指通过恶意手段使目标服务器、服务或网络资源无法正常提供服务&#xff0c;从而影响正常用户的访问。DoS攻击通常通过消耗目标系统的资源&#xff08;如带宽、内存、处…

Elasticsearch与数据库数据一致性:最佳实践与解决方案

在现代应用程序中&#xff0c;Elasticsearch&#xff08;ES&#xff09;作为一个高效的分布式搜索引擎&#xff0c;常常与数据库一同使用&#xff0c;以提供强大的搜索、分析和数据可视化功能。然而&#xff0c;数据库和Elasticsearch之间的同步与一致性常常成为一个挑战。如何…

jquery实现的网页版扫雷小游戏源码

源码介绍 这是一款基于jQuery实现的经典扫雷小游戏源码&#xff0c;玩家根据游戏规则进行游戏&#xff0c;末尾再在确定的地雷位置单击右键安插上小红旗即可赢得游戏&#xff01;是一款非常经典的jQuery游戏代码。本源码改进了获胜之后的读数暂停功能。 效果预览 源码下载 j…

接口隔离原则,到底什么需要隔离?

接口隔离原则&#xff08;Interface Segregation Principle, ISP&#xff09;是SOLID五大设计原则之一&#xff0c;其核心思想是&#xff1a;客户端不应该被迫依赖于它不使用的方法&#xff1b;接口应当尽量小而专一&#xff0c;避免创建“胖”接口&#xff08;即一个接口中定义…

对计网大题的一些指正(中间介绍一下CDM的原理和应用)

目录 前言&#xff1a; &#xff08;1&#xff09;五层原理体系结构每层功能&#xff1a; 下面是文档的答案&#xff1a; 我在之前的博客里面有介绍过五层原理体系结构&#xff0c; 按理来说&#xff0c;第五层应该是应用层才对&#xff0c;而会话层的功能应该被放到应用层…

Arduino UNO 驱动1.8 TFT屏幕显示中文

背景 最近入手了一块1.8寸的tft屏幕&#xff0c;通过学习文档&#xff0c;已经掌握了接线&#xff0c;显示英文、数字、矩形区域、划线、画点等操作&#xff0c; 但是想显示中文的时候操作比较复杂。 问题 1、arduino uno 驱动这款屏幕目前使的是自带的<TFT.h> 库操作…

【论文阅读】Anchor-based fast spectral ensemble clustering

论文地址&#xff1a;Anchor-based fast spectral ensemble clustering - ScienceDirect 代码地址&#xff1a; 摘要 集成聚类通过融合多个基础聚类方法&#xff0c;可以获得更好且更稳健的结果&#xff0c;因此受到广泛关注。尽管近年来已经出现了许多代表性的算法&#xff…

R语言的数据结构

R语言的数据结构 R语言是专门为统计计算和数据分析而设计的一种编程语言&#xff0c;因其强大的数据处理能力而受到广泛欢迎。在R中&#xff0c;数据结构是理解和有效使用R语言的基础。本文将详细介绍R语言中的主要数据结构&#xff0c;包括向量、矩阵、数据框、列表、因子等&…

检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?

论文地址&#xff1a;https://arxiv.org/pdf/2403.05313 Github地址&#xff1a;https://github.com/CraftJarvis/RAT 想象一下&#xff0c;一个人工智能助手可以像莎士比亚一样写作&#xff0c;像专家一样推理。这听起来很了不起&#xff0c;对吧&#xff1f;但是&#xff0…

关于数组的一些应用--------数组作函数的返回值(斐波那契数列数列的实现)

数组在作为函数的返回值&#xff0c;一个很经典的例子就是获取斐波那契数列的前N项 代码思路&#xff1a; 设计思路 输入&#xff1a; 输入一个整数 n&#xff0c;表示要生成斐波那契数列的长度。 输出&#xff1a; 输出一个长度为 n 的整数数组&#xff0c;其中每个元素为斐…

【IT人物系列】之MySQL创始人

前言 当今世界有无数的人构成&#xff0c;其中有些人做了一些改变世界的事情&#xff0c;比如&#xff1a;乔布斯缔造了Apple帝国&#xff0c;‌詹姆斯高斯林创造了Java语言等。正是这些优秀的人做的这些优秀的事情&#xff0c;让这个世界更加美好。因此他们值得铭记。 从今天…

【2025最新计算机毕业设计】基于SpringBoot+Vue智慧养老医护系统(高质量源码,提供文档,免费部署到本地)【提供源码+答辩PPT+文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

pytorch镜像源

我以为的 pip install torch2.3.1cu118 torchvision0.18.1cu118 torchaudio2.3.1cu118 -f https://download.pytorch.org/whl/torch_stable.html实际上&#xff0c;有很多加速方案 为提高下载速度可以使用国内的镜像源来安装与 CUDA 11.8 兼容的 PyTorch。 方法 1&#xff1a…

047_小驰私房菜_Qcom 8系列,Jpeg GPU 旋转

【问题背景】 横屏模式下&#xff0c;发现有些三方app拍照旋转了90度。 【修改策略】 adb shell setprop endor.debug.camera.overrideGPURotationUsecase 1 或者在/vendor/etc/camera/camxoverridesettings.txt 里面添加如下内容 overrideGPURotationUsecase1 【解释】 Ga…