sql处理带逗号的数据

这篇博客宗旨在于处理如何使用sql把带逗号的数据转换为表中的行以及将表中的行拼接成用逗号组成的数据。

具体代码如下功能写在注释里

--将有逗号的数据转换为一个表存储id加数据
GO
DECLARE @Text VARCHAR(200)
SET @Text = 'test1,test2'
DECLARE @xml XML
SET @xml = CONVERT(XML,'<a>'+ REPLACE(@Text,',','</a><a>')+'</a>')
CREATE TABLE #TMP1
(
	iID VARCHAR(50),
	sText VARCHAR(200)
)
INSERT INTO #TMP1
SELECT NEWID(),b.value
FROM (SELECT @xml AS 'XML') a
CROSS APPLY (SELECT Tb.a.value('.','VARCHAR(200)') as value FROM  a.xml.nodes('/a') AS Tb(a)) b
SELECT * FROM #TMP1
GO
--将一个Table中某一列的数据拼成逗号分隔的形式
GO
    CREATE TABLE #TMP2
	(
		iID INT,
		sText VARCHAR(200)
	)
	INSERT INTO #TMP2( iID, sText )
	VALUES ( 1,  'test1');
	INSERT INTO #TMP2( iID, sText )
	VALUES ( 1,  'test2');
	DECLARE @TMP2RES VARCHAR(200)
	SET @TMP2RES = (SELECT sText+',' FROM #TMP2 FOR XML PATH(''))
	SET @TMP2RES = SUBSTRING(@TMP2RES,0,LEN(@TMP2RES)-1)
	SELECT @TMP2RES
GO

运行结果如图

时间: 2024-11-07 18:32:44

sql处理带逗号的数据的相关文章

循环查询sql带逗号(,)分隔的数据

? 1 2 3 4 5 6 select * from sys_role_list where id in (select c from (with test as (select roleid c from sys_role_info where id=1) select substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (instr(t.ca, ',', 1, c.lv) + 1)) AS c

关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究

背景介绍 随着业务的发展.需求的变化,促使我们追求使用不同类型的数据库,充分发挥其各自特性.如果决定采用新类型的数据库,就需要将既有的数据迁移到新的数据库中.在这类需求中,将SQL Server中的数据导入到MongoDB 中显得尤为突出. 面对这种需求,大家优先想到的就是百度查找第三方工具,可惜截止目前,还没有一款公认比较满意的数据迁移工具.百度不到,大家可能就要回头自己开发了.如此,更是花费不少人力物力和宝贵的精力.甚至,由于没有理想的迁移工具,导致项目优化一再延迟. 其实,你原本不必如此!

C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

转自原文C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 阅读目录 1.HtmlAgilityPack简介 2.XPath技术介绍与使用 3.采集天气网站案例 4.资源 第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几

sql里将重复行数据合并为一行,数据用逗号分隔

DECLARE @T1 table ( UserID int , UserName nvarchar(50), CityName nvarchar(50) ); insert into @T1 (UserID,UserName,CityName) values (1,'a','上海') insert into @T1 (UserID,UserName,CityName) values (2,'b','北京') insert into @T1 (UserID,UserName,CityName)

使用Phoenix通过sql语句更新操作hbase数据

hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 hbase的原生API呢? 这样就可以通过普通平常的 sql 来对hbase 进行数据的管理,使用成本大大降低.Apache Phoenix 组件就完成了这种需求,官方注解为 “Phoenix - we put the SQL back in NoSql”,通过官方说明,Phoenix 的性能很高,相

使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过程并没有数组.列表之类的参数类型,使用XML类型可妥善解决这个问题. 不过,SQL Server2005对标准xml的支持不足,很多地方需要特别处理.举一个例子说明一下. 这个场景是往存储过程里传递一个xml

数据库生成带框架、数据的脚本和还原数据库

我们在进行项目的过程中肯定需要做维护或者重构,这时我们要面对的就是别人的系统,如果前任是比较细心的人还好,他会将所有需要的信息都给你准备好,但是万一遇到粗心的前任的话就不好说了,最最可能的情况就是有代码,然后就没有然后了...... 众所周知我们做软件需要的是三项:代码.文档和数据库,往往人们只注重代码的实现而忽视了其他两项,数据库还好说毕竟我们会发布到服务器上,文档就难说了,所以提醒广大的工程师们,一定要将文档记在心中. 这篇文章就是这么来的--当被分到整理维护某个系统时发现数据库不在给的文件

(转)SQL Server 2005的XML数据修改语言(XML DML) (转自MSDN)

SQL Server 2005的XML数据修改语言(XML DML) 发布日期: 2006-08-14 | 更新日期: 2006-08-14 作者:张洪举 Microsoft MVP 应用于:SQL Server 2005,XML 注:本文章中的内容需要相关的XML和XQuery知识 本页内容 1.insert 2.delete 3.replace 作为对XQuery语言的扩展,XML DML为XML数据操作提供了更大的灵活性,而不再仅仅是对XML数据进行一些查询操作.通过XML DML,用户可

SQL中使用UPDATE更新数据时一定要记得WHERE子句

我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 mysql 中,我们可以设置sql_safe_updates 这个自带的参数来解决,,当该参数开启的情况下,我们必须在 UPDATE 语句后携带 WHERE 条件,否则就会报错.set sql_safe_updates=1; 表示开启该参数.下面是开启sql_safe_updates参数后不带  WHE