使用VB.NET提取存储在SQL Server 2008 R2中的唯一数据集

时间:2017-09-06 18:46:10

标签: vb.net sql-server-2008-r2

我有数据组(使用参数名称进行分组),需要提取所有唯一值。数据库表有两列ParameterNameParameterValue。我正在寻找一种生成方式

例如:

  • 年龄:27,36,42(3条记录)
  • 颜色:红色,白色蓝色,紫色(4条记录)
  • 花:玫瑰,兰花,莉莉(3条记录)
  • 对象:鞋子,手套(2条记录)
  • 性别:男,女(2条记录)

期望的结果:

  • 27,Red,Rose,Shoes,Male
  • 36,红色,玫瑰色,鞋子,男性
  • 42,Red,Rose,Shoes,Male
  • 27,白色,玫瑰色,鞋子,男性
  • 36,白色,玫瑰色,鞋子,男性
  • 42,白色,玫瑰色,鞋子,男性

..... 等等。任何帮助,将不胜感激。我觉得这应该很简单,但没有任何东西打击我......甚至没有结构

1 个答案:

答案 0 :(得分:0)

SELECT [age].ParameterValue as [age]
     , [color].ParameterValue as [color]
     , [flower].ParameterValue as [flower]
     , [object].ParameterValue as [object]
     , [sex].ParameterValue as [sex]

FROM ( SELECT * FROM [tblParameters] where ParameterName = '[age]' ) [age]  
  CROSS JOIN ( SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[color]' ) [color]  
  CROSS JOIN ( SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[flower]' ) [flower]  
  CROSS JOIN ( SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[object]' ) [object]  
  CROSS JOIN ( SELECT * FROM [Vignette].[dbo].[tblParameters] where ParameterName = '[sex]' ) [sex]