【问题标题】:Transformation of dynamic fields in SQL ServerSQL Server 中动态字段的转换
【发布时间】:2018-06-12 10:40:20
【问题描述】:

根据以下场景,我如何从 View 中实现此输出。

我只是这样尝试

SELECT ',DynamicField'+ CAST(Seq AS NVARCHAR(10)) + ' as ' 
+ '['+ FieldName + ']' FROM dbo.Feilds
 WHERE FieldName IS NOT null FOR XML PATH('') ) 

以上查询返回

 ,DynamicField1 as [Name],DynamicField2 as [Fname],DynamicField3 as [Lname]
 ,DynamicField4 as [Gender],DynamicField5 as [Country] 





SELECT id,Employeeid,DynamicField1 as [Name]
  ,DynamicField2 as [Fname],DynamicField3 as [Lname]
  ,DynamicField4 as [Gender],DynamicField5 as [Country] FROM TransactionDetails

【问题讨论】:

  • 欢迎来到 SO,大多数人更喜欢文字而不是图像。到目前为止,您有没有尝试过任何事情,我们很乐意为您提供帮助
  • 这不只是一个简单的选择查询,您的列调用按所需顺序吗?
  • @preeti 如果我理解正确,您需要将列名命名为 DynamicField1 as [Name] 而不是 name 对吗?
  • 是的,没错,我需要根据字段表获取交易详情列作为别名。
  • @preeti 最简单的方法是在字段名称中添加方括号

标签: sql sql-server sql-server-2008-r2


【解决方案1】:

试试这种方式,将列名括在[]中

SELECT ','+'['+'DynamicField'+ CAST(Seq AS NVARCHAR(10)) + ' as ' 
+ FieldName + ']' FROM dbo.Feilds
 WHERE FieldName IS NOT null FOR XML PATH('')  

【讨论】:

  • 对不起,不能按我的要求工作,我需要加入归档表和交易明细表。请注意,我需要这个视图的输出。
  • 你能否包括查询你是如何加入两个表的?
  • @@ven,请看我的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 2012-09-01
相关资源
最近更新 更多