当前位置: 首页 > news >正文

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 或程序端辅助。

相关文章:

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

在 SQL 中&#xff0c;可以通过以下方法将字符串按逗号分割&#xff0c;并将每个分割的值作为单独的记录插入到结果集中。以下是针对不同数据库系统的实现方法&#xff1a; 1. 使用 STRING_SPLIT&#xff08;SQL Server 2016&#xff09; STRING_SPLIT 是 SQL Server 提供的内置…...

C#设计模式(行为型模式):观察者模式

C#设计模式&#xff1a;观察者模式&#xff0c;让对象间通信更优雅 在软件开发中&#xff0c;我们经常会遇到一个对象的状态发生改变&#xff0c;其他对象需要自动更新或做出相应反应的场景。例如&#xff1a; GUI事件处理&#xff1a; 当用户点击按钮时&#xff0c;按钮需要…...

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…...

Verilog语法之常用行为级语法

摘要&#xff1a;本文主要介绍了一些在verilog中的行为级语法&#xff0c;并且提供了大量的运行实际例子&#xff0c;可以通过这些例子感受行为级语法在仿真中的巨大作用。 概述&#xff1a;行为级语法是RTL级的上一层&#xff0c;或者说是比RTL级更高级的语法&#xff0c;其语…...

PADS Logic原理图中有很多页原理图,如何(怎样)删除其中一页或者多页

我们在进行PADS Logic进行原理图设计的时候&#xff0c;有时候可能遇到一次性设计了很多页的原理图&#xff0c;比如说十几页的原理图。那么我们在进行PADS Layout的时候&#xff0c;可能将这些原理图绘制两块板或者多块PCB板&#xff0c;那么这时候我们需要将其中的一张原理图…...

蓝色简洁引导页网站源码

一款蓝色的简洁引导页&#xff0c;适合资源分发和网站备用引导。 1.源码上传至虚拟机或者服务器 2.绑定域名和目录 3.访问域名安装 4.安装完成后就行了 https://pan.quark.cn/s/b2d8b9c5dc7f https://pan.baidu.com/s/17h1bssUNhhR9DMyNTc-i9Q?pwd84sf https://caiyun.139.com…...

Apache PDFBox添加maven依赖,pdf转成图片

要使用Apache PDFBox将PDF文件转换为图片&#xff0c;并将其添加到Maven项目中&#xff0c;您可以按照以下步骤操作&#xff1a; 1. 添加Maven依赖 在您的pom.xml文件中添加Apache PDFBox的依赖。请确保使用最新版本的PDFBox库。截至2025年&#xff0c;以下是推荐的配置&…...

mybatis 和 mybatisPlus 兼容性问题

项目采用的是 mybatis&#xff0c; 后续引入了 mybatisPlus&#xff0c;用 mybatisX 创建的四个类一直报错&#xff0c;提示找不到符号&#xff0c;意识到 mybatis 和 mybatisPlus 的兼容性问题&#xff0c;通过修改配置 两者的配置如下 #配置mybatis配置 mybatis:type-aliase…...

Mono里运行C#脚本23—mono_jit_exec

前面已经分析一部分代码,可以打下基础知识,当然还有很多其它部分的内容,没有深入去了解。 接着下来,我们去探索一下怎么样找到执行应用程序的入口。 在这个嵌入脚本程序里,有一个这样的函数调用: main_function (domain, file, argc - 1, argv + 1); 这个函数的作用,…...

第十一章 图论

/* * 题目名称&#xff1a;连通图 * 题目来源&#xff1a;吉林大学复试上机题 * 题目链接&#xff1a;http://t.cn/AiO77VoA * 代码作者&#xff1a;杨泽邦(炉灰) */#include <iostream> #include <cstdio>using namespace std;const int MAXN 1000 10;int fathe…...

纯前端实现将pdf转为图片(插件pdfjs)

需求来源 预览简历功能在移动端&#xff0c;由于用了一层iframe把这个功能嵌套在了app端&#xff0c;再用一个iframe来预览&#xff0c;只有ios能看到&#xff0c;安卓就不支持&#xff0c;查了很多资料和插件&#xff0c;原理基本上都是用iframe实现的。最终转换思路&#xf…...

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

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

在Typora中实现自动编号

文章目录 在Typora中实现自动编号1. 引言2. 准备工作3. 自动编号的实现3.1 文章大纲自动编号3.2 主题目录&#xff08;TOC&#xff09;自动编号3.3 文章内容自动编号3.4 完整代码 4. 应用自定义CSS5. 结论 在Typora中实现自动编号 1. 引言 Typora是一款非常流行的Markdown编辑…...

Single Shot MultiBox Detector(SSD)

文章目录 摘要Abstract1. 引言2. 框架2.1 网络结构2.2 损失函数2.3 训练细节 3. 创新点和不足3.1 创新点3.2 不足 参考总结 摘要 与Faster R-CNN相比&#xff0c;SSD是一个真正的单阶段多目标检测模型&#xff0c;同时也是一个全卷积网络&#xff0c;不仅检测准确率高&#xff…...

kafka生产者专题(原理+拦截器+序列化+分区+数据可靠+数据去重+事务)

目录 生产者发送数据原理参数说明代码示例&#xff08;同步发送数据&#xff09;代码示例&#xff08;异步&#xff09; 异步和同步的区别同步发送定义与流程特点 异步发送定义与流程特点 异步回调描述代码示例 拦截器描述代码示例 消息序列化描述代码示例&#xff08;自定义序…...

【React+TypeScript+DeepSeek】穿越时空对话机

引言 在这个数字化的时代&#xff0c;历史学习常常给人一种距离感。教科书中的历史人物似乎永远停留在文字里&#xff0c;我们无法真正理解他们的思想和智慧。如何让这些伟大的历史人物"活"起来&#xff1f;如何让历史学习变得生动有趣&#xff1f;带着这些思考&…...

公共数据授权运营系统建设手册(附下载)

在全球范围内&#xff0c;许多国家和地区已经开始探索公共数据授权运营的路径和模式。通过建立公共数据平台&#xff0c;推动数据的开放共享&#xff0c;促进数据的创新应用&#xff0c;不仅能够提高政府决策的科学性和公共服务的效率&#xff0c;还能够激发市场活力&#xff0…...

基于HTML和CSS的旅游小程序

一、技术基础 HTML&#xff08;HyperText Markup Language&#xff09;&#xff1a;超文本标记语言&#xff0c;用于定义网页的内容和结构。在旅游小程序中&#xff0c;HTML用于搭建页面的基本框架&#xff0c;包括标题、段落、图片、链接等元素&#xff0c;以及用于交互的表单…...

maven之插件调试

当使用maven进行项目管理的时候&#xff0c;可能会碰到一些疑难问题。网上资料很少&#xff0c;可能会想着直接调试定位问题。这里以maven-compiler-plugin为例&#xff1a; &#xff08;1&#xff09;准备maven-compiler-plugin源码 进入maven 官网-》Maven Plugins-》找到对…...

SQL Sever 数据库损坏,只有.mdf文件,如何恢复?

SQL Sever 数据库损坏&#xff0c;只有.mdf文件&#xff0c;如何恢复 在SQL Server 2008中&#xff0c;如果只有MDF文件而没有LDF文件&#xff0c;附加数据库的过程会稍微复杂一些。以下是几种可能的方法 一、使用紧急模式重建日志文件 1、新建一个同名的数据库。 2、停止SQ…...

从CTF实战出发:手把手教你用取反、异或绕过PHP命令执行黑名单(附脚本)

从CTF实战出发&#xff1a;手把手教你用取反、异或绕过PHP命令执行黑名单&#xff08;附脚本&#xff09; 在CTF竞赛和安全研究中&#xff0c;PHP命令执行漏洞是常见的考察点。面对严格的黑名单过滤机制&#xff0c;传统的攻击手法往往失效。本文将深入剖析两种高效绕过技术——…...

别再买错芯片了!全志A40i平台USB-WiFi选型与RTL8188FU/FTV驱动移植避坑指南

全志A40i平台USB-WiFi选型与驱动移植实战指南 在嵌入式设备开发中&#xff0c;Wi-Fi模块选型往往是最容易被低估的环节。许多工程师习惯性地认为"只要芯片型号对得上就能用"&#xff0c;直到项目进度被卡在驱动兼容性问题上才追悔莫及。全志A40i平台作为工业级SoC的典…...

乙巳马年春联生成终端惊艳效果:生成结果嵌入NFT合约的区块链版权存证演示

乙巳马年春联生成终端惊艳效果&#xff1a;生成结果嵌入NFT合约的区块链版权存证演示 1. 引言&#xff1a;当传统春联遇见前沿科技 春节贴春联&#xff0c;是传承千年的文化习俗。一副好春联&#xff0c;不仅寄托着人们对新年的美好祝愿&#xff0c;更是一件凝聚了智慧与美感…...

角色设计效率翻倍:Nunchaku FLUX.1 CustomV3实战,快速迭代不同发型与肤质的角色原型

角色设计效率翻倍&#xff1a;Nunchaku FLUX.1 CustomV3实战&#xff0c;快速迭代不同发型与肤质的角色原型 1. 为什么角色设计师需要关注Nunchaku FLUX.1 CustomV3&#xff1f; 在角色设计领域&#xff0c;我们经常面临一个核心挑战&#xff1a;如何在有限时间内快速验证不同…...

Unity游戏模组开发终极指南:MelonLoader完整教程与实战技巧

Unity游戏模组开发终极指南&#xff1a;MelonLoader完整教程与实战技巧 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 想要为U…...

别再只会用单引号了!Matlab里char函数的5个隐藏用法,从数字到日期都能转

解锁Matlab中char函数的5个高阶应用场景 在Matlab的世界里&#xff0c;char函数就像一位低调的多面手&#xff0c;它远不止于简单的字符转换。许多开发者仅仅将其用于基础文本处理&#xff0c;却不知道它能够优雅地解决各种数据类型转换难题。今天&#xff0c;我们将深入探索c…...

Ubuntu 18.04下Petalinux 2021.2 SDK编译遇坑记:手把手教你解决Qt组件和assimp报错

Ubuntu 18.04下Petalinux 2021.2 SDK编译实战&#xff1a;Qt与assimp报错深度解析 在嵌入式Linux开发领域&#xff0c;Xilinx的Petalinux工具链为开发者提供了从硬件到软件的完整解决方案。然而&#xff0c;当我们在Ubuntu 18.04环境下使用Petalinux 2021.2版本构建SDK时&…...

嵌入式LVGL实战:手把手教你用Spinner控件打造智能设备‘呼吸感’状态提示

嵌入式LVGL实战&#xff1a;用Spinner控件设计智能设备的呼吸感状态提示 在智能咖啡机完成研磨的等待过程中&#xff0c;那个缓缓转动的弧形进度指示器&#xff0c;远比冰冷的百分比数字更能缓解用户的焦虑——这就是动态视觉反馈的魔力。作为嵌入式设备与用户对话的第一界面&a…...

惊艳展示!CYBER-VISION零号协议实时分割效果:盲道、行人、车辆精准识别

惊艳展示&#xff01;CYBER-VISION零号协议实时分割效果&#xff1a;盲道、行人、车辆精准识别 1. 视觉革命&#xff1a;当AI遇见助盲科技 在熙攘的城市街道上&#xff0c;视障人士的每一次出行都是一场充满未知的挑战。传统的盲杖只能探测到脚边的障碍&#xff0c;而CYBER-V…...

GBFR Logs:强力战斗数据分析工具,精准掌握《碧蓝幻想:Relink》团队输出表现

GBFR Logs&#xff1a;强力战斗数据分析工具&#xff0c;精准掌握《碧蓝幻想&#xff1a;Relink》团队输出表现 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://git…...