【问题标题】:how to using distinct in XML SQL using stored procedure如何使用存储过程在 XML SQL 中使用 distinct
【发布时间】:2016-08-04 07:31:05
【问题描述】:
SELECT DISTINCT
    CD.CASE_NO AS CaseNumber , 
    CE.PROCEEDING_ID AS ProceedingId, 
    PR.AC_STATE_CD AS ForeclosureStatecode, 
    0 AS STATUS, 
    GETDATE() AS CreatedDate, 
    1 AS CreatedBy, 
    GETDATE() AS ModifiedDate, 
    1 AS ModifiedBy,
            (
            select * from TBL_PROPERTY FOR XML PATH('T')
            )
            from TBL_CASE_DETAIL CD WITH(NOLOCK)
                    INNER JOIN TBL_AUCTION_DETAIL AD WITH(NOLOCK) ON AD.CASE_DETAIL_ID = CD.CASE_DETAIL_ID
                    LEFT JOIN TBL_AUCTION_PROPERTY_MAPPING TAPM WITH(NOLOCK) ON TAPM.AUCTION_ID = AD.AUCTION_ID
                    LEFT JOIN TBL_PROPERTY PR WITH(NOLOCK) ON PR.PROPERTY_ID = TAPM.PROPERTY_ID
                    LEFT JOIN TBL_AUCTION_PROCEEDING_MAPPING APM WITH(NOLOCK) ON APM.AUCTION_ID = AD.AUCTION_ID

    FOR XML PATH('Foreclosure')

大家好,这是我修改后的代码以获得不同的结果。但现在属性部分无法正常显示..

这是我得到的结果。假设为财产打开另一个标签让我们说有 3 个属性.. 所以在止赎的 1 个标签中,止赎内部有 3 个属性数据,然后关闭止赎标签..
https://gyazo.com/8a54690c88df3e9bb0dd7ff916c6f86c 谢谢你。

【问题讨论】:

    标签: sql-server xml stored-procedures sqlxml


    【解决方案1】:

    如果我做对了,您唯一需要添加的是,TYPE。否则,您的内部SELECT ... FOR XML PATH() 将被填充为所有禁止字符转义的文本...

    试试:

    (
        select * from TBL_PROPERTY FOR XML PATH('T'),TYPE
    )
    

    【讨论】:

    • The xml data type cannot be selected as DISTINCT because it is not comparable.
    • 是的,确实如此,抱歉,之前没看到DISTINCT...试试没有DISTINCT,会发生什么?
    • 如果没有使用DISTINCT我的记录会重复4次。因为我有 4 条财产记录.. 但我只有 2 条案例记录..
    • gyazo.com/2765221aedcf7ccc601c47e1456b8193 假设有 3 个记录属性.. 我只有 2 个记录案例.. 因为属性有 4 个记录所以循环 4 次。 1 箱有 3 个财产,其他 1 箱有 1 个财产
    • @KHLIM,但您的子选择调用整个 TBL_Property?您在主选择中将此表与LEFT JOIN 绑定,然后在您的子选择中再次独立调用它但没有任何过滤器!!!?你的概念有问题……
    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多