SQL Server利用XML找字符串相同部分
DECLARE @a NVARCHAR(100)= '01,02,04,05,07';
DECLARE @b NVARCHAR(100)= '01,03,04,05,06';
WITH a1
AS ( SELECT CONVERT(XML, '<root><v>' + REPLACE(@a, ',', '</v><v>')
+ '</v></root>') cxml
),
a AS ( SELECT v.value('.', 'varchar(100)') cv
FROM a1
CROSS APPLY cxml.nodes('/root/v') AS C ( v )
),
b1
AS ( SELECT CONVERT(XML, '<root><v>' + REPLACE(@b, ',', '</v><v>')
+ '</v></root>') cxml
),
b AS ( SELECT v.value('.', 'varchar(100)') cv
FROM b1
CROSS APPLY cxml.nodes('/root/v') AS C ( v )
),
x1
AS ( SELECT 1 AS z ,
a.cv
FROM a
JOIN b ON a.cv = b.cv
),
x0
AS ( SELECT z ,
( SELECT cv + ','
FROM x1
WHERE z = t1.z
ORDER BY z
FOR
XML PATH('')
) AS l
FROM x1 t1
GROUP BY z
)
SELECT LEFT(l, LEN(l) - 1) AS vs
FROM x0;
vs
---------------------------------------------
01,04,05 (1 行受影响)
SQL Server利用XML找字符串相同部分的更多相关文章
- SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF
原文:SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF 本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然 ...
- SQL Server FOR XML PATH 语句的应用---列转行
经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...
- 使用SQL SERVER FOR XML PATH将多个结果集转换成一行并进行去重处理
在一个医药行业的系统中需要根据患者的接触记录ID获取不同接触类型的集合,效果像这样 --患者接触记录信息,一个患者可以有N个不同的接触记录,每个接触记录又有N个接触类型记录 IF OBJECT ...
- SQL Server对Xml字段的操作
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
- SQL SERVER中XML查询:FOR XML指定PATH
SQL SERVER中XML查询:FOR XML指定PATH 前言 在SQL SERVER中,XML查询能够指定RAW,AUTO,EXPLICIT,PATH.本文用一些实例介绍SQL SERVER中指 ...
- 灵活运用 SQL SERVER FOR XML PATH 转
灵活运用 SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些 ...
- 问题:sqlserver有没有类似Oracle的LISTAGG;结果: 灵活运用 SQL SERVER FOR XML PATH
灵活运用 SQL SERVER FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前 ...
- SQL Server 输出 XML
一.概述 SELECT 查询将结果作为行集返回.在 SQL 查询中指定 FOR XML 子句,从而将该查询的正式结果作为 XML 来检索.FOR XML 子句可以用在顶级查询和子查询中.顶级 FOR ...
- SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)
SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...
随机推荐
- git常用命令点击查看
创建git项目仓库 $git init 配置个人登记信息,这样团队协作的时候,就可以看到哪个用户修改过哪些文件的 $git config --global user.name 'cfanbo' $gi ...
- 使用Java+Kotlin双语言的LeetCode刷题之路(一)
LeetCode learning records based on Java,Kotlin,Python...Github 地址 序号对应 LeetCode 中题目序号 1 两数之和 给定一个整数数 ...
- 腾讯 xtestserver 基本使用教程~
刚刚简单录制了下 腾讯demo的基本测试脚本 成功~get新技能成功~开心ing~ 体验就是: 1.各种安卓机找开发者中心选项的usb调试模式太难找了.. 2.不管录制还是播放录制时都感觉好慢... ...
- centos7 服务操作命令
systemctl list-unit-files --type service --all 操作防火墙: https://www.jianshu.com/p/411274f96492 操作VNC: ...
- MYSQL ROW_FORMAT=Compact
https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format-antelope.html https://docs.oracle.com/cd/E ...
- MYSQL使用中字符编码一坑
AJAX提交的字符出错,还以为是AJAX配置的错误呢!幸亏检查了一下MYSQL连接的字符集,发现开发库与本地库配置的字符集是也不一样的.
- Docker 安装私有镜像库的简单使用
公司的网络实在是太差了, 想着自己搭建一个私有的镜像库进行使用测试使用.... docker pull registry.docker-cn.com/library/registry docker t ...
- Laravel 常见错误 1071 Specified key was too long
Laravel 5.5 + Mysql 5.5 ,执行 migrate 时,提示索引长度超过指定的 1000 bytes 原因: Mysql 对索引有一定的长度限制,版本不同长度不同: MyIsAm ...
- Mysql 悲观锁
转载:http://chenzhou123520.iteye.com/blog/1860954 悲观锁介绍: 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处 ...
- Java之Array(数组)说明
代码说明: package array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** ...