由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 誰來解釋一下這是什麼原理
相关主题
问一个sql查询语句的问题mysql的问题
问个数据migration的问题请教set和select 的区别
Help: XML linking problem in Oracle急!怎么做模糊查询?
Urgent help needed, please请问这两个SQL QUERY有什么错?
请各位帮我看看这个最简单的Stored Procedure (转载)誰來幫我開來開悄? Interesting SQL query
#在SQL里啥子意思请教2个sql query 问题
谁能讲解一下sql server里面的 for xml?About INSERT IGNORE
为何query这么慢?一个关于T-SQL的问题
相关话题的讨论汇总
话题: select话题: data话题: sample话题: test话题: allnames
进入Database版参与讨论
1 (共1页)
i****a
发帖数: 36252
1
我只會寫一個 funcation,並使用 cross apply call the funcation. 此 query 好象
很利害, 不需要 function.
http://mangalpardeshi.blogspot.com/2009/03/how-to-split-comma-d
Create Sample Data :
-- Create Table for Sample Data
CREATE TABLE Test
(
ID INT,
AllNames VARCHAR(100)
)
GO
-- Load Sample Data
INSERT INTO test SELECT
1, 'A,B,C' UNION ALL SELECT
2, 'A,B' UNION ALL SELECT
3, 'X,Y,Z'
GO
-- Verify the Sample Data
SELECT Id, AllNames
FROM Test
And here is the query for How to split a comma delimited string :
;WITH Cte AS
(
SELECT
id,
CAST('' + REPLACE( Allnames, ',' , '') + '' AS XML)
AS Names
FROM Test
)
SELECT
ID,
Split.a.value('.', 'VARCHAR(100)') AS Names
FROM Cte
CROSS APPLY Names.nodes('/M') Split(a)
s**********0
发帖数: 266
2
CROSS APPLY 对multiple level XML很有用,他会选择所有那一个level的 nodes, 然后你可以用 .value 去读那个XML node里的 attribute value 和data value.
这个CTE只不过是把 Column ‘AllNames’ 里的数据 转换成一个XML string。 把 ‘,’之间的内容全搞成一个XML node。 其实只是一个很简单的xpath 的select而已。
i****a
发帖数: 36252
3
apply 還有 built in function, .value, .node etc. nice

然后你可以用 .value 去读那个XML node里的 attribute value 和data value.
‘,’之间的内容全搞成一个XML node。 其实只是一个很简单的xpath 的select而已。

【在 s**********0 的大作中提到】
: CROSS APPLY 对multiple level XML很有用,他会选择所有那一个level的 nodes, 然后你可以用 .value 去读那个XML node里的 attribute value 和data value.
: 这个CTE只不过是把 Column ‘AllNames’ 里的数据 转换成一个XML string。 把 ‘,’之间的内容全搞成一个XML node。 其实只是一个很简单的xpath 的select而已。

1 (共1页)
进入Database版参与讨论
相关主题
一个关于T-SQL的问题请各位帮我看看这个最简单的Stored Procedure (转载)
问一个关于SQL的问题#在SQL里啥子意思
有趣的Join问题,源于SQL和SAS比较。谁能讲解一下sql server里面的 for xml?
Interesting Data Manipulation question为何query这么慢?
问一个sql查询语句的问题mysql的问题
问个数据migration的问题请教set和select 的区别
Help: XML linking problem in Oracle急!怎么做模糊查询?
Urgent help needed, please请问这两个SQL QUERY有什么错?
相关话题的讨论汇总
话题: select话题: data话题: sample话题: test话题: allnames