博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
for xml path
阅读量:6642 次
发布时间:2019-06-25

本文共 1397 字,大约阅读时间需要 4 分钟。

测试建表

create table WebNewsInfo
(
ID int identity(1,1),
NewsTitle varchar(32) not null,
HotFlag tinyint not null
)
alter table WebNewsInfo add constraint PK_WebNewsInfo_ID  primary key(ID)
insert into WebNewsInfo values('测试1',1)
insert into WebNewsInfo values('测试2',0)
select * from WebNewsInfo

要将两条数据合并成一条显示<p head="Hot" hcolor="0xffff00" content="测试1"/><p head="New" hcolor="0xffff00" content="测试2"/>,而且只显示出一条

select (select '<p head="'+(CASE when HotFlag=1 THEN 'Hot' else 'New' END )

+'" hcolor="0xffff00" content="'+NewsTitle+'"/>'
from WebNewsInfo
for xml path('')
)
from  WebNewsInfo 

这样写会显示两条数据,而且> <都被转义了

select '<p head="'+(CASE when HotFlag=1 THEN 'Hot' else 'New' END )

+'" hcolor="0xffff00" content="'+NewsTitle+'"/>'
from WebNewsInfo
for xml path('')

这样写> <都被转义了,而且是xml的形式

select  stuff((select '<p head="'+(CASE when HotFlag=1 THEN 'Hot' else 'New' END )

+'" hcolor="0xffff00" content="'+NewsTitle+'"/>'
from WebNewsInfo
for xml path('')),1, 0, '')

这样写不是xml格式了,但是还是没有解决转义的问题

select

(
    select '<p head="'+(CASE when HotFlag=1 THEN 'Hot' else 'New' END )
    +'" hcolor="0xffff00" content="'+NewsTitle+'"/>'
    from WebNewsInfo
    FOR XML PATH(''),TYPE
).value('.','NVARCHAR(MAX)') --防止转义

这样写就可以实现要求

 select stuff((select convert(varchar(20),ID)+':'+NewsTitle+';' from WebNewsInfo FOR XML PATH('')),1, 0, '')

用这个语句可以实现列转行

 

此外,要实现行转列,可以采用split函数的实现方法

 

转载于:https://www.cnblogs.com/liu-shiliu/p/5549586.html

你可能感兴趣的文章
六、CPU优化(5)最大并行度
查看>>
MS UC 2013-0-虚拟机-标准化-部署-2-模板机-制作-1-部署-虚拟机
查看>>
SCCM2012之部署安装
查看>>
通过Scala获取Github上的Scala-tool-Support的Vim配置
查看>>
HTML5 自定义属性 data-* 和 jQuery.data 详解
查看>>
Mandiant对APT1组织的***行动的情报分析报告
查看>>
规则与法则:中国式创业的界限与群像
查看>>
天籁数学——数列篇(2)
查看>>
一个可以更新时区的Calendar
查看>>
并行开发 —— 第二篇 Task的使用
查看>>
"百年一遇"奇怪问题的进展:找到原因,ajax请求中断引起
查看>>
读书清单+Github打造属于自己的简历
查看>>
Flex结合java实现一个登录功能
查看>>
关于几道面试的题目
查看>>
SQL Server发送邮件的存储过程
查看>>
【java】eclipse从数据库逆向生成Hibernate实体类
查看>>
make:commands commence before first target
查看>>
一个很强大很好用的报表统计插件
查看>>
A+B for Input-Output Practice (II)
查看>>
Qt Widget Gallery
查看>>