SQL Server中的FOR XML PATH以及Split

news/2024/12/22 1:24:50/

请添加图片描述

前提

数据库是在2016年以下的版本,以上的版本,现在有最新的函数可以支持者两个了

Split

在c#中Split可以将以指定字符分割的字符串转换为字符串数组,这里主要是用于,主表存储了多个从表的id,存储的时候用的字符串,从而为’1,2,3’,在不借助后端的情况下,sql讲该字符串转换为可识别的id
创建方法

create function split(@string varchar(255),--待分割字符串@separator varchar(255)--分割符
)returns @array table(item varchar(255))
as
begindeclare @begin int,@end int,@item varchar(255)set @begin = 1set @end=charindex(@separator,@string,@begin)while(@end<>0)beginset @item = substring(@string,@begin,@end-@begin)insert into @array(item) values(@item)set @begin = @end+1set @end=charindex(@separator,@string,@begin)endset @item = substring(@string,@begin,len(@string)+1-@begin)if (len(@item)>0)insert into @array(item) values(substring(@string,@begin,len(@string)+1-@begin))return
END

原代码地址
使用方法

SELECT * FROM dbo.WechatUser WHERE ID IN (SELECT * FROM dbo.split('1,3,17',','))

在这里插入图片描述

FOR XML PATH(‘’)

它可以将列的输出转为行输出,非常有意思,本次是和上面那个方法连用

SELECT  CAST(Name AS varchar) +',' FROM WechatUser WHERE id IN (1,3,17) FOR XML PATH('')

原来查询的结果
在这里插入图片描述
用了FOR XML PATH的查询结果
在这里插入图片描述
这个方法原来是用来转xml的


http://www.ppmy.cn/news/1469821.html

相关文章

前端跨域问题的解决办法,两种类型

跨域问题是由于同源策略的原因&#xff0c;在协议(HTTP或HTTPS)不同、端口号(8080或8881)不同、主机IP(182.92.178.25或者182.92.178.26)不同时而导致的不能进行数据交换的问题。 当后端没有做跨域时&#xff0c;前端就需要自己配置。 类型一&#xff1a;使用代理服务器的方法…

Spring Cloud全家桶(上)【Nacos、OpenFeign、LoadBalancer、GateWay、金丝雀灰色发布】

0.零基础入门微服务实战课 1.微服务和 Spring Cloud1.1 什么是微服务&#xff1f;1.2 什么是 Spring Cloud&#xff1f;1.3 微服务 VS Spring Cloud 2.为什么要学微服务&#xff1f;3.Spring Cloud 组件介绍1.什么是 Nacos?1.1 Nacos 功能1.1.1 配置中心1.1.2 注册中心 1.2 Na…

webpack和vite区别

一、Webpack 1. 概述 Webpack 是一个模块打包工具&#xff0c;它会递归地构建依赖关系图&#xff0c;并将所有模块打包成一个或多个bundle&#xff08;包&#xff09;。 2. 特点 配置灵活&#xff1a;Webpack提供了高度可定制的配置文件&#xff0c;可以根据项目需求进行各…

react中组件的生命周期

React组件的生命周期是指组件从被创建、挂载到页面&#xff0c;到组件更新&#xff0c;再到组件被销毁的整个过程。在这个过程中&#xff0c;React提供了一系列的钩子函数&#xff08;生命周期方法&#xff09;&#xff0c;允许开发者在组件的不同阶段执行特定的操作。以下是Re…

github ssh key的SHA256是什么

github ssh key的SHA256是什么 怎么知道github上自己的公钥指纹和本地的公钥是否一致&#xff1f; 计算方法如下&#xff1a; cat .ssh/id_rsa.pub |awk { print $2 } | # Only the actual key data without prefix or commentsbase64 -d | # decode as base64s…

编程软件游戏怎么做:从入门到精通的全方位解析

编程软件游戏怎么做&#xff1a;从入门到精通的全方位解析 编程软件游戏&#xff0c;对于许多人来说&#xff0c;既充满神秘又极具吸引力。它似乎融合了技术与艺术的精髓&#xff0c;让我们在创造与探索中体验无尽的乐趣。那么&#xff0c;编程软件游戏怎么做呢&#xff1f;本…

如何计算 GPT 的 Tokens 数量?

基本介绍 随着人工智能大模型技术的迅速发展&#xff0c;一种创新的计费模式正在逐渐普及&#xff0c;即以“令牌”&#xff08;Token&#xff09;作为衡量使用成本的单位。那么&#xff0c;究竟什么是Token呢&#xff1f; Token 是一种将自然语言文本转化为计算机可以理解的…

ResNet——Deep Residual Learning for Image Recognition(论文阅读)

论文名&#xff1a;Deep Residual Learning for Image Recognition 论文作者&#xff1a;Kaiming He et.al. 期刊/会议名&#xff1a;CVPR 2016 发表时间&#xff1a;2015-10 ​论文地址&#xff1a;https://arxiv.org/pdf/1512.03385 1.什么是ResNet ResNet是一种残差网络&a…