将分号列值转换为SQL Server中的行

时间:2017-08-30 06:48:03

标签: sql sql-server

我可以看到博客中有答案,但我仍然需要在下面的查询中稍作修改。例如,在我的场景中,我有开始日期和结束日期列,我需要使用这些列过滤我的列。

SELECT DISTINCT
    Start, [End],
    Organizer,
    DisplayTo,
    City As Location,
    LTRIM(RTRIM(m.n.value('.[1]', 'varchar(max)'))) AS test
FROM
    (SELECT 
         Start, [End], Organizer, DisplayTo, City,
         CAST('<M>' + REPLACE(Location,';','</M><M>') + '</M>' AS XML) AS x
     FROM  
         testdata.dbo.RawData_load 
     WHERE
         Start > GETDATE()) t
CROSS APPLY 
    x.nodes('/M') m(n)

当我尝试上述部分时,出现错误:

  

XML解析非法字符。

如果有上述查询的替代方法,有人可以告诉我吗?

谢谢, SJ

0 个答案:

没有答案