declare @str varchar(100),@sql varchar(1000)set @str='1,2,3,4,5,6,7,8,9,10'set @sql='select Value='''+ replace(@str,',',''' union all select ''')+''''PRINT @sqlexec (@sql) if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_spli
原文:SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF 本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然连草稿都没有……哎,我也是无语了…… 于是没有心情再写,直接发一下代码,再顺便留几个其他博文的链接 1.FOR XML PATH http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html 2.STUFF http://www
1.删除所有表 select 'drop table '+name+';' from sys.tables where name like 'DataSyncV1DelaySample%' or name like 'DataSyncV2DelaySample%' 2.递归查询 使用关键字with as with temp ( [Id], [parentid]) as ( select Id, ParentId from SysLocation where ParentId = @ParentI
1.多行转成一行(并以','分开) 表数据如下图: 查询结果如下图: SQL查询脚本: SELECT addPer, house_code = (STUFF((SELECT ',' + house_code FROM my_demo WHERE addPer = T.addPer FOR XML PATH('')), 1, 1, '')) FROM my_demo AS T GROUP BY addPer 2.一列转为一行 SELECT STUFF((SELECT ',' + CAST(id A
--将行转为字符串 select stuff((select top 20 ','+ QQ from dl_QQ where uiid=1 order by tim desc for xml path('')),1,1,'') -- ============================================= -- Description: 将字符串转为表格 /* 例:select * from [f_split]('spu0987*5//spu0988*5/spu0989*5',
sql 处理以字符隔开的字符串(类似split)的处理方法. CREATE PROCEDURE dbo.Vip_SendMails @userids varchar(MAX), ), ), @c varchar(MAX), ) AS BEGIN ) begin insert into VipMail (fromwho,towho,subject,content) ,),@subject,@c) ,charindex(@split,@userids),'') end END GO --调用 注意:
原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,” 遇到其他情况只要稍加修改就好了 CREATE FUNCTION dbo.f_splitstr( @str varchar(8000))RETURNS @r TABLE(id int IDENTITY(1, 1), value varchar(5000))ASBEGIN /* Function body */ DECLARE @pos int