XML 方法对SQL列表中的值进行重新排序
2010-08-02 14:41
295 查看
XML 方法对SQL列表中的值进行重新排序
/*
最近在看问题的时候看到用xml方法对SQL列表的重新排序,
方法一为原来提供的方法,方法二为后来想到的方法。
此处没有的写法,有兴趣的可以补全。
*/
declare @t table ( id int,valuelist varchar(200))
insert @t select 1,'1,43,3,2'
insert @t select 2,'233,100,4455,323,223'
--方法一
;with tb as(
select id,value from @t
cross apply(select xmlcode=CAST('<row>'+replace(valuelist,',','</row><row>')+'</row>' as xml)) c0
cross apply xmlcode.nodes('/row')c1(xmlcode1)
cross apply (select value=c1.xmlcode1.value('.','int')) c2
)
select id
,replace((select value as 'data()' from tb where a.id=id order by value for xml path('')),' ',',') as datalist
from @t a
--方法二
select id,replace(xmlcode1.value('.','varchar(200)'),' ',',') as datalist from @t
cross apply(select xmlcode=CAST('<row>'+replace(valuelist,',','</row><row>')+'</row>' as xml)) c0
cross apply(select xmlcode1=xmlcode.query('
<e> { for $i in /row
order by $i
return data($i)
}
</e>
')) c1
/*
最近在看问题的时候看到用xml方法对SQL列表的重新排序,
方法一为原来提供的方法,方法二为后来想到的方法。
此处没有的写法,有兴趣的可以补全。
*/
declare @t table ( id int,valuelist varchar(200))
insert @t select 1,'1,43,3,2'
insert @t select 2,'233,100,4455,323,223'
--方法一
;with tb as(
select id,value from @t
cross apply(select xmlcode=CAST('<row>'+replace(valuelist,',','</row><row>')+'</row>' as xml)) c0
cross apply xmlcode.nodes('/row')c1(xmlcode1)
cross apply (select value=c1.xmlcode1.value('.','int')) c2
)
select id
,replace((select value as 'data()' from tb where a.id=id order by value for xml path('')),' ',',') as datalist
from @t a
--方法二
select id,replace(xmlcode1.value('.','varchar(200)'),' ',',') as datalist from @t
cross apply(select xmlcode=CAST('<row>'+replace(valuelist,',','</row><row>')+'</row>' as xml)) c0
cross apply(select xmlcode1=xmlcode.query('
<e> { for $i in /row
order by $i
return data($i)
}
</e>
')) c1
相关文章推荐
- XSLT对XML数据进行分页且可以按某个值重新排序的方法
- Python中对元组和列表按条件进行排序的方法示例
- mysql 动态生成sql语句执行方法,表格重新产生排序
- python使用sorted函数对列表进行排序的方法
- java对List<Object>型列表进行排序(通过内部类对compare(**)方法重写)
- where in的sql语句按照指定ID进行排序的解决方法
- java 移动节点,排序号进行重新排序,以闭包形式实现ztree增删改查操作,其中排序运用到此方法
- JavaScript实现对下拉列表值进行排序的方法
- Python中对元组和列表按条件进行排序的方法示例
- java对实体类列表进行方法内排序,不修改数据查询方式
- Python编程对列表中字典元素进行排序的方法详解
- C#对list列表进行随机排序的方法
- 用Collections.sort方法对现有的List重新进行排序
- Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法
- C#对list列表进行随机排序的方法
- kotlin + 列表拖拽重新排序、滑动进行删除
- where in的sql语句按照指定ID进行排序的解决方法
- Python中对元组和列表按条件进行排序的方法示例
- JavaScript实现对下拉列表值进行排序的方法
- php根据某字段对多维数组进行排序的方法