【发布时间】:2014-05-09 03:43:51
【问题描述】:
我想将split 和string 替换为sql 中的xml 标记。我有一个用户定义的函数如下:
CREATE FUNCTION [dbo].[stringtoxml]
(
@string_to_split NVARCHAR(MAX),
@delimiter NVARCHAR(100)
)
RETURNS XML
AS
BEGIN
DECLARE @xml XML
SET @xml = N'<t>' + REPLACE(@string_to_split, @delimiter,'</t><t>') + '</t>'
RETURN @xml
END
我将xml 存储在一个字段employee_name 中,其中datatype 是xml。在另一个表中,我希望能够读取第一个元素作为名字,如果格式是一个字母字符后跟一个句号,第二个元素作为中间名,第三个元素作为姓氏。
@string_to_split 中有无效字符 - 例如“John O'Smith”。
有没有办法绕过无效字符而不必做:
DECLARE @xml XML
SET @xml = N'<t>' + REPLACE(REPLACE(REPLACE(@string_to_split,'''','''),'&','&'), @delimiter,'</t><t>') + '</t>'
RETURN @xml
然后在我读取另一个表中的单个元素时进行另一个替换以删除 &apos 和 &。
【问题讨论】:
-
这是
TSQL的SQL-Server吗?请适当地标记问题。这会有所不同,因为不同的数据库引擎具有不同的字符串/XML 处理能力。 -
嗨,是的,这是 SQL-Server
标签: sql-server xml