SQL Server2005数据项的分拆与合并

SQL Server2005数据项的分拆与合并:

参考示例如下:

-- =============================================

-- Author: LzmTW

-- create date: 20080102

-- Description: 连接子字符串

-- @TableName: 数据所在的表的名称

-- @KeyColName: 连接子字符串所依据的键值所在的列

-- @joinColName: 包含要连接的子字符串所在的列

-- @Quote: 分隔子字符串

-- @where: 选择条件,不包含where

-- =============================================

create PROCEDURE [Helper].[joinValue]
@TableName nvarchar(100)
,@KeyColName nvarchar(20)
,@joinColName nvarchar(20)
,@Quote nvarchar(10) = N’,’
,@where nvarchar(max) = NULL
AS
BEGIN
SET NOcount ON;
DECLARE
@SQL nvarchar(max)
IF @where IS NULL
SET @SQL = N’
select *
FROM
(
select DISTINCT KeyCol = @KeyColName
FROM @TableName
)a

ELSE
SET @SQL = N’
select *
FROM
(
select DISTINCT KeyCol = @KeyColName
FROM @TableName
where @where
)a

SET @SQL = @SQL + N’
OUTER APPLY (
select NewValues =
STUFF(
REPLACE(
REPLACE(
REPLACE(
(
select joinCol = @joinColName
FROM @TableName b
where @KeyColName = a.KeyCol
FOR XML RAW
)
, N’’’’, N’’’’)
, N’’, N’’"/>’’, N’’’’)
, 1, LEN(N’’@Quote’’), N’’’’)
) c’
  SET @SQL = REPLACE(@SQL, N’@TableName’, @TableName)
SET @SQL = REPLACE(@SQL, N’@KeyColName’, @KeyColName)
SET @SQL = REPLACE(@SQL, N’@joinColName’, @joinColName)
SET @SQL = REPLACE(@SQL, N’@Quote’, @Quote)
IF NOT @where IS NULL
SET @SQL = REPLACE(@SQL, N’@where’, @where)
--PRINT @SQL
exec sp_executesql @SQL
END
GO

时间: 2024-08-31 10:27:49

SQL Server2005数据项的分拆与合并的相关文章

MS SQL Server2k字符串分拆与合并处理代码

server|字符串          -- MS SQL Server2k字符串分拆与合并处理代码               --字符串分拆处理代码CREATE FUNCTION f_splitSTR(@s     varchar(8000),  --待分拆的字符串@split  varchar(10)     --数据分隔符)RETURNS TABLEAS--SELECT TOP 8000 ID=IDENTITY(int,1,1) INTO dbo.tb_splitSTR  --字符串分拆

IE浏览器选项卡的移动、分拆与合并

IE浏览器上的选项卡开的太多肿么办?若是能把工作用和娱乐用的网页分别放在不同的窗口里,这样打开的网页就不会再杂乱无章啦.最简单的方法就是用鼠标"直接拖拽"咯,它可是会动哟,的其他浏览器也可以按照下面的方法,不过IE的选项卡还有多彩分组的功能哟! IE选项卡的移动--选项卡你给我过来 左键单击目标选项卡不松手 左/右平行拖拽. 拖到理想的位置后松开左键即可. IE选项卡的分拆--重要网页要独立 左键单击目标选项卡,在拖拽出该IE窗口. 目标选项卡即可变成一个独立的IE窗口. IE选项卡的

分级基金母基金申购和分拆套利

1.分级基金母份额申购起点有的是1000,有的是5万,每个基金不一样,请查询基金公司的基金招募说明书.(更新时间:2014.12.11) 一.分级基金操作路径: 1.分级基金的合并与分拆的渠道:网上交易软件.涨乐客户端:无法通过电话.页面委托等方式操作. (1)专业版Ⅱ--委托交易界面--股票--基金盘后业务--基金分拆/基金合并: (2)涨乐财富通--交易--更多--基金盘后业务--基金分拆/基金合并: (3)涨乐交易--交易--基金盘后业务--基金分拆/基金合并: 2.母基金申购/赎回路径:

SQL语法集锦三:合并列值与分拆列值

本文转载http://www.cnblogs.com/lxblog/archive/2012/09/29/2708724.html   在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来,以便不时之需 :) 什么叫分拆列值和合并列值呢?就只是这样的,比如有如下表A结构及数据: Id Data 1 aa,bb 2 aaa,bbb,ccc 将该表A的Data字段数据根据 "," 进行分拆得到如下表B Id Data 1 aa 1 bb 2 aaa 2 bbb 2 ccc 这

西门子将采取合并,还是出售的形式分拆当前业务尚未可知

西门子监管委员会主席格哈德·克罗默(Gerhard Cromme)正在考虑出售公司部分资产,以提升股票价值,并降低公司被敌意并购的危险. 据悉,克罗默和新任CEO彼得·罗谢已为公司股票制定了130-140欧元的中长期价格.而目前,西门子的股价为95欧元. 该消息称,克罗默希望西门子当前的十个部门能够更加紧凑些.目前,克罗默和罗谢一致认为,当前的业务形式过于分散. 到目前为止,还不清楚西门子将采取合并,还是出售的形式分拆当前业务.但西门子监管委员会的一位成员表示:"这两种形式均有可能."

SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用

本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL 先看如下一个数据表(t_tree):     上图显示了一个表中的数据,这个表有三个字段:id.node_name.parent_id.实际上,这个表中保存了一个树型结构,分三层:省.市.区.其中id表示当前省.市或区的id号.node_name表示名称.parent_id表示节点的父节点的id.     现在有一个需求,要查询出某个省下面的所有市和区(查询结

SQL Server2005杂谈(3):公用表表达式(CTE)的递归调用

 本文为原创,如需转载,请注明作者和出处,谢谢! 先看如下一个数据表(t_tree):     上图显示了一个表中的数据,这个表有三个字段:id.node_name.parent_id.实际上,这个表中保存了一个树型结构,分三层:省.市.区.其中id表示当前省.市或区的id号.node_name表示名称.parent_id表示节点的父节点的id.     现在有一个需求,要查询出某个省下面的所有市和区(查询结果包含省).如果只使用SQL语句来实现,需要使用到游标.临时表等技术.但在SQL Ser

SQL Server2005高可用性还有哪些不足

在高可用方面SQL Server提供了一系列高端支持能力,并对复制和快照技术作了增强.但由于SQL Server几乎完全基于Windows平台,因此在HA方面还存在诸多不足: 1.Failover Cluster是大型企业实施SQL Server HA的关键技术,该技术基于微软的MSCS(Microsoft Cluster Service),虽然在05版本中提供更方便的安装和多至8节点(企业版)的支持,但在SCSI和光线通道产品的支持上相对比较"挑剔",尤其对于一些高端的共享裸设备虽然

同方股份:尚未研究同方威视分拆上市方案

具有分拆上市概念的同方股份(600100)近期成为关注的焦点,相关分析人士认为公司旗下在细分领域最具统治地位的同方威视技术股份有限公司最有可能首先分拆上市,记者日前就这一问题求证了同方股份高管. 某券商近期有关同方股份的深度调研报告指出,安防业务可以说是同方股份产业化最成功的一个,而主要都集中在其持股76%的同方威视.数据显示,同方威视2009年度主营收入17.52亿元,毛利率为23.53%,由同方股份董事长荣泳霖兼任该公司董事长.因此有分析人士认为同方股份最有可能将其分拆创业板上市. 不过,昨