利用XML语法 SQL 列转行】的更多相关文章

--行转列 固定xml语法 declare @xml xml ; set @xml=cast('<v>2</v><v>4</v><v>3</v><v></v>' as xml); select tab.val.value('.'/*xpath 语法*/,'nvarchar(100)') d from @xml.nodes('/v') tab(val) --outer apply 是可以用到前面表的变量 sele…
继上篇<SQL 列转行 合并多条记录>后,有网友反馈新的需求还是不太会用. 现举例说明 一,网友需要如下的效果: 其实,这个需求依然可以我上篇的方法进行解答,但为了实现分组,需要distinct group1,同时,为了根据key1,key2,key3是否相同进行分组,所以要用where进行连接. 语法格式:select .....from t1 where key1=a.key1 and key2=a.key2... for xml path('') 二,进入正题,代码如下: select…
在工作中,大家可能会遇到一些SQL列转行.行转列的问题,恰好,我也遇到了,就在此记录一下.此处所用的是SQLServer2008R2. 行转列,列转行,都要预先知道要要处理多少数据,在此我就以三种方案来说明一下,分别是case when.PIVOT.For XML. 列转行: 首先创建测试数据: --测试语句,准备创建表的语句:如下 CREATE TABLE dbo.test1 ( id int IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED, t…
--列转行,逗号拼接指定列的值Oracle中写法:select wmsys.wm_concat(Field1) from TableASQL Server中写法:SELECT STUFF(( SELECT  ',' + Field1 from TableA FOR XML PATH('')), 1, 1, '')…
select OrderID,ProdDetailID from A 表A : OrderID,ProdDetailID 1             6 1             7 1             9 2              5 2             3 如:orderID=1 的列转行select STUFF((SELECT ','+ cast(ProdDetailID as varchar(4)) FROM A  where A.OrderID=1 FOR XML…
test表: 执行列转行sql: select student, sum(case Course when '语文' then Score else null end) 语文, sum(case Course when '数学' then Score else null end) 数学, sum(case Course when '英语' then Score else null end) 英语 from test group by student 得到结果:…
SELECT * FROM test5 ; RESOURCES DATETIME CNT ID1 0 2018-01-22 4 12 0 2018-01-24 10 23 0 2018-01-25 25 34 0 2018-01-26 14 45 0 2018-01-29 3 56 1 2018-01-29 22 67 2 2018-01-29 1 78 1 2018-01-30 44 89 2 2018-01-30 7 910 2 2018-01-31 1 1011 2 2018-02-01…
需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district] [nvarchar](255) NULL,[town] [nvarchar](255) NULL); insert into t2 values(1,'淮上区','曹老集镇'); insert into t2 values(2,'淮上区','淮滨街道'); insert into t2 values(3,'淮上区','梅桥乡');…
SQL code------ 合并列值  --******************************************************************************************* 表结构,数据如下:  id    value  ----- ------  1    aa  1    bb  2    aaa  2    bbb  2    ccc    需要得到结果:  id    values  ------ -----------  1   …
合并列值   --*******************************************************************************************  表结构,数据如下:   id    value   ----- ------   1    aa   1    bb   2    aaa   2    bbb   2    ccc      需要得到结果:   id    values   ------ -----------   1    …