【问题标题】:How to correctly format For XML path results如何正确格式化 XML 路径结果
【发布时间】:2017-02-02 12:51:52
【问题描述】:

我必须查询,它们的目的是检索落入 where 子句的所有条目(在这种情况下并不重要),并将它们组合成一个名为 ActualDropOffDateTimeUTC 的单列列,但是我遇到的问题是我我收到包含 XML 标记的正确结果。

如何格式化数据以使结果等于(示例):
2016-11-29T20:56:00 - 2016-11-30T09:27:00

我如何实际接收数据:
<ActualDropOffDateTimeUTC>2016-11-29T20:56:00</ActualDropOffDateTimeUTC><ActualDropOffDateTimeUTC>2016-11-30T09:27:00</ActualDropOffDateTimeUTC>

下面我在ActualDropOffDateTimeUTCSecondAttempt的列名下做了两次尝试

(
    SELECT DISTINCT
    ActualDropOffDateTimeUTC
    FROM [dbo].[BookingJourneyLinkedCitySprintJobs]
    WHERE
    BookingReference = BJ.BookingReference AND BookingJourneyReference = BJ.BookingJourneyReference AND IsCurrentRevision = 1
    FOR XML PATH('')
) as ActualDropOffDateTimeUTC,


(
    SELECT
    STUFF(
            (
                SELECT ' ' + ActualDropOffDateTimeUTC
                FROM [dbo].[BookingJourneyLinkedCitySprintJobs]
                WHERE
                BookingReference = BJ.BookingReference AND BookingJourneyReference = BJ.BookingJourneyReference AND IsCurrentRevision = 1
                FOR XML PATH(''),TYPE
                ).value('.','NVARCHAR(MAX)'
                ),1,1,''
                )
) AS SecondAttempt

ActualDropOffDateTimeUTC 结果:
<ActualDropOffDateTimeUTC>2016-11-29T20:56:00</ActualDropOffDateTimeUTC><ActualDropOffDateTimeUTC>2016-11-30T09:27:00</ActualDropOffDateTimeUTC>

第二次尝试结果:
016-11-29T20:56:002016-11-30T09:27:00

期望的输出:

2016-11-29T20:56:00 - 2016-11-30T09:27:00

【问题讨论】:

  • 您能否提供一些脚本来创建包含虚拟数据的表,以便我们测试您的查询,因为我们无权访问您的数据。

标签: sql-server tsql sql-server-2016


【解决方案1】:

我想我明白你想要做什么:

declare @t table(d nvarchar(100));
insert into @t values('2016-11-29T20:56:00'),('2016-11-30T09:27:00');

select stuff((
                select ' - ' + d
                from @t
                for xml path('')
                )
            ,1,3,'')

源数据:
第 1 行:2016-11-29T20:56:00
第 2 行:2016-11-30T09:27:00

查询输出:
2016-11-29T20:56:00 - 2016-11-30T09:27:00

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多