0

我需要从 Universe 数据库生成 XML 文档。这些 XML 文件是 SSIS 包的来源。所以首先我必须生成 XML 文件。为此,我正在使用以下命令。SELECT FIRST 1000 LIST TOXML ELEMENTS 它返回 1000 条记录,很好。我在这里有一些问题,1.我如何指定一个条件来选择只满足的记录a。名称如“S%”(SQL Server)的示例 2. 某些字段具有多个值,例如

<RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A1</SUBBRANCH>
<SUB_BRANCH>A2</SUBBRANCH>
<SUB_BRANCH>A3</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>B</BRANCH>
<SUB_BRANCH>B1</SUBBRANCH>
<SUB_BRANCH>B2</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>C</BRANCH>
<SUB_BRANCH>C1</SUBBRANCH>
</RECORD>

从这里我想根据

如下所示:

<RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A1</SUBBRANCH>
</RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A2</SUBBRANCH>
</RECORD>
<BRANCH>A</BRANCH>
<SUB_BRANCH>A3</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>B</BRANCH>
<SUB_BRANCH>B1</SUBBRANCH>
</RECORD>
<BRANCH>B</BRANCH>
<SUB_BRANCH>B2</SUBBRANCH>
</RECORD>
<RECORD>
<BRANCH>C</BRANCH>
<SUB_BRANCH>C1</SUBBRANCH>
</RECORD>

这可能吗?

谢谢,

4

2 回答 2

0

我不明白选择的事情,所以只是在这里评论 XSL 部分。在处理方面,您的源 XML 存在一些问题。首先,您需要一个根元素才能处理它。其次,您的 SUB_BRANCH 似乎以 SUBBRANCH 结束(没有下划线),因此您的 XML 无效。假设这些是固定的:

<xsl:template match="RECORD">
    <xsl:element name="RECORD">
    <xsl:for-each select=".//SUB_BRANCH">
        <xsl:element name="BRANCH">
            <xsl:value-of select="../*"/>
        </xsl:element>
        <xsl:element name="SUB_BRANCH">
            <xsl:value-of select="node()"/>
       </xsl:element>

    </xsl:for-each>
        </xsl:element>
</xsl:template>

将是在输出中为您提供所需内容的一种方式,但我强调,它只有在您修复源数据时才有效(并且如果它是自动生成的,无论生成它)

于 2012-04-11T08:35:55.703 回答
0

您的 SELECT 可能看起来像这样

SELECT filename WITH fieldname LIKE ...something... AND WHEN mvfieldname = somethingelse

WITH 子句将处理单值字段和多值字段中子值的 WHEN 子句

于 2012-04-26T11:46:25.410 回答