GVKun编程网logo

如何在T-SQL中透视XML列的属性

23

想了解如何在T-SQL中透视XML列的属性的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于.net–从SQLXML列中的元素中获取属性的名称、excel中透视表如何用、excel中透视

想了解如何在T-SQL中透视XML列的属性的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于.net – 从SQL XML列中的元素中获取属性的名称、excel中透视表如何用、excel中透视表怎么用、Flex4 的AS文件中定义的属性,可以在mxml中作为自定义标签的属性使用的新知识。

本文目录一览:

如何在T-SQL中透视XML列的属性

如何在T-SQL中透视XML列的属性

我需要对表中的XML列执行数据透视,其中XML包含具有多个属性的多个元素。每个元素中的属性始终相同,但是元素的数量会有所不同。让我举个例子吧…

FormEntryId |               FormXML                                    | DateCreated====================================================================================1           |<Root>                                                    | 10/15/2009            |  <Form>                                                  |            |    <FormData FieldName="Username" FieldValue="stevem" /> |            |    <FormData FieldName="FirstName" FieldValue="Steve" /> |            |    <FormData FieldName="LastName" FieldValue="Mesa" />   |            |  </Form>                                                 |            |</Root>                                                   |            |                                                          |------------------------------------------------------------------------------------2           |<Root>                                                    | 10/16/2009            |  <Form>                                                  |            |    <FormData FieldName="Username" FieldValue="bobs" />   |            |    <FormData FieldName="FirstName" FieldValue="Bob" />   |            |    <FormData FieldName="LastName" FieldValue="Suggs" />  |            |    <FormData FieldName="NewField" FieldValue="test" />   |            |  </Form>                                                 |            |</Root>                                                   |

我需要为每个不同的FieldName属性值(在此示例中为Username,FirstName,LastName和NewField)使用相应的FieldValue属性作为值的结果集结束。我上面给出的示例的结果如下所示:

FormEntryId | Username | FirstName | LastName | NewField | DateCreated======================================================================1           | stevem   | Steve     | Mesa     | NULL     | 10/15/2009----------------------------------------------------------------------2           | bobs     | Bob       | Suggs    | test     | 10/16/2009

我想出了一种使用静态列来完成此操作的方法

SELECT    FormEntryId,    FormXML.value(''/Root[1]/Form[1]/FormData[@FieldName="Username"][1]/@FieldValue'',''varchar(max)'') AS Username,    FormXML.value(''/Root[1]/Form[1]/FormData[@FieldName="FirstName"][1]/@FieldValue'',''varchar(max)'') AS FirstName,    FormXML.value(''/Root[1]/Form[1]/FormData[@FieldName="LastName"][1]/@FieldValue'',''varchar(max)'') AS LastName,    FormXML.value(''/Root[1]/Form[1]/FormData[@FieldName="NewField"][1]/@FieldValue'',''varchar(max)'') AS NewField,    DateCreatedFROM FormEntry

但是,我想看看是否有一种方法可以基于“ FieldName”属性值的不同集合来使列动态化。

答案1

小编典典

看看这个动态枢纽,以及最近的这一枢纽-您基本上需要能够SELECT DISTINCT FieldName使用此技术动态地构建查询。

这是您特定问题的完整答案(请注意,从不同属性生成列表时,如果知道列应显示的顺序,则存在列顺序弱点):

DECLARE @template AS varchar(MAX)SET @template = ''SELECT     FormEntryId    ,{@col_list}    ,DateCreated FROM FormEntry''DECLARE @col_template AS varchar(MAX)SET @col_template = ''FormXML.value(''''/Root[1]/Form[1]/FormData[@FieldName="{FieldName}"][1]/@FieldValue'''',''''varchar(max)'''') AS {FieldName}''DECLARE @col_list AS varchar(MAX);WITH FieldNames AS (    SELECT DISTINCT FieldName    FROM FormEntry    CROSS APPLY (        SELECT X.FieldName.value(''@FieldName'', ''varchar(255)'')        FROM FormXML.nodes(''/Root[1]/Form[1]/FormData'') AS X(FieldName)    ) AS Y (FieldName))SELECT @col_list = COALESCE(@col_list + '','', '''') + REPLACE(@col_template, ''{FieldName}'', FieldName)FROM FieldNamesDECLARE @sql AS varchar(MAX)SET @sql = REPLACE(@template, ''{@col_list}'', @col_list)EXEC (@sql)

.net – 从SQL XML列中的元素中获取属性的名称

.net – 从SQL XML列中的元素中获取属性的名称

对于此xml(在sql 2005 XML列中):
<doc>
 <a>1</a>
 <b ba="1" bb="2" bc="3" />
 <c bd="3"/>
<doc>

我希望能够检索属性(ba,bb,bc,bd)的名称,而不是sql Server 2005中的值.好吧,XPath肯定允许使用name(),但sql不支持.这是我在sql中使用XML的主要抱怨;你必须弄清楚XML / Xpath / XQuery规范的哪些部分.

我能想到的唯一方法是构建一个CLR proc,它将XML加载到XML Document(iirc)中并运行XPath来提取节点的名称.我愿意接受这方面的建议.

解决方法

DECLARE @xml as xml
DECLARE @path as varchar(max)
DECLARE @index int,@count int

SET @xml = 
'<doc>
 <a>1</a>
 <b ba="1" bb="2" bc="3" />
 <c bd="3"/>
</doc>'



SELECT @index = 1

SET @count = @xml.query('count(/doc/b/@*)').value('.','int')

WHILE @index <= @count 
BEGIN
    SELECT  @xml.value('local-name((/doc/b/@*[sql:variable("@index")])[1])','varchar(max)')
    SET @index = @index + 1
END

对于元素’b’

它返回

> ba
> bb
> bc

您可以构建一个循环来获取xml中每个元素的属性.

BTW应在关闭doc标签时关闭样本中的XML.

excel中透视表如何用

excel中透视表如何用

透视表用于汇总和分析数据。使用步骤:1. 选择数据;2. 插入透视表;3. 创建透视表字段(行、列、值);4. 设置汇总方式;5. 过滤数据;6. 自定义透视表。通过这些步骤,可以有效分析数据。

excel中透视表如何用

如何使用 Excel 中的透视表

透视表是 Excel 中一种强大的工具,可以帮助您快速汇总和分析大量数据。以下是如何使用 Excel 中的透视表:

步骤 1:选择数据

  • 首先,选择要分析的数据范围。
  • 确保数据按列组织,每列表示不同的数据类别。

步骤 2:插入透视表

  • 转到“插入”选项卡。
  • 单击“透视表”。
  • 选择要放置透视表的位置(新工作表或现有工作表)。

步骤 3:创建透视表字段

  • 在“透视表字段”窗格中,拖放以下字段:

    • 行字段:将数据分组的行类别。
    • 列字段:将数据分组的列类别。
    • 值字段:要汇总和分析的数值。
  • 您可以通过拖放字段来更改其位置和排序。

步骤 4:设置汇总方式

  • 单击“值字段”字段。
  • 从出现的菜单中选择汇总方式(例如:求和、平均值、最大值)。

步骤 5:过滤数据

  • 可以使用“筛选器”窗格过滤透视表中的数据。
  • 对于行或列字段,单击字段并选择要包括或排除的条件。

步骤 6:自定义透视表

  • 可以自定义透视表以满足您的特定需求:

    • 更改透视表格式(例如:斑马线、阴影)。
    • 添加计算字段、层次结构或切片器。
    • 创建透视图标或图表。

通过遵循这些步骤,您可以使用 Excel 的透视表快速、轻松地分析和汇总您的数据。

以上就是excel中透视表如何用的详细内容,更多请关注php中文网其它相关文章!

excel中透视表怎么用

excel中透视表怎么用

透视表是一种工具,用于总结和分析数据。它允许您以交互方式查看和探索数据,并识别模式和趋势。创建透视表涉及以下步骤:选择数据范围、配置行/列/值字段、过滤和排序数据、格式化透视表并将其用于分析数据。

excel中透视表怎么用

如何使用 Excel 透视表

什么是透视表?

透视表是一种强大的工具,可帮助您总结、整理和分析大量数据。它允许您交互式地查看和探索您的数据,以识别模式、趋势和见解。

步骤 1:创建透视表

  1. 选择包含您要分析的数据的单元格范围。
  2. 单击“插入”选项卡。
  3. 在“表”组中,单击“透视表”。
  4. 在“创建透视表”对话框中,选择数据范围并单击“确定”。

步骤 2:配置透视表

  • 行字段:此区域用于将数据按行分组,例如日期或产品类别。
  • 列字段:此区域用于将数据按列分组,例如销售额或数量。
  • 值字段:此区域用于汇总数据,例如求和或平均值。

步骤 3:过滤和排序数据

  • 过滤器:可以在行字段和列字段中应用过滤器,以仅显示您感兴趣的数据。
  • 排序:可以通过单击字段名称旁边的箭头对数据进行升序或降序排序。

步骤 4:格式化透视表

  • 更改样式:您可以从“透视表样式”组中为透视表应用不同的样式。
  • 格式化数字:您可以格式化数字以显示小数点、货币符号或百分比。
  • 隐藏或显示字段:您可以通过右键单击字段并选择“隐藏”或“显示”来隐藏或显示字段。

步骤 5:使用透视表

创建透视表后,您可以使用它来:

  • 识别数据中的趋势和模式。
  • 比较不同类别或时期的数据。
  • 分析数据以做出明智的决策。

提示:

  • 使用简洁明了的字段名称。
  • 对透视表进行分组以组织数据。
  • 使用筛选器和排序以专注于特定数据点。
  • 定期更新您的透视表以反映新数据。

以上就是excel中透视表怎么用的详细内容,更多请关注php中文网其它相关文章!

Flex4 的AS文件中定义的属性,可以在mxml中作为自定义标签的属性使用

Flex4 的AS文件中定义的属性,可以在mxml中作为自定义标签的属性使用

总结

以上是小编为你收集整理的Flex4 的AS文件中定义的属性,可以在mxml中作为自定义标签的属性使用全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

关于如何在T-SQL中透视XML列的属性的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于.net – 从SQL XML列中的元素中获取属性的名称、excel中透视表如何用、excel中透视表怎么用、Flex4 的AS文件中定义的属性,可以在mxml中作为自定义标签的属性使用的相关知识,请在本站寻找。

本文标签: