Sql 确定数据集中的正确列
我需要为导出重新映射一些数据。数据作为视图从多个表中提取 在视图中,相关列和示例值为:Sql 确定数据集中的正确列,sql,sql-server-2008,Sql,Sql Server 2008,我需要为导出重新映射一些数据。数据作为视图从多个表中提取 在视图中,相关列和示例值为: size_bucket size_desc 2 XS 3 S 4 M 5 L 6 XL Size bucket对应于另一个表中包含各种大小描述的列;例如: size02 size03 size04 size05
size_bucket size_desc
2 XS
3 S
4 M
5 L
6 XL
Size bucket对应于另一个表中包含各种大小描述的列;例如:
size02 size03 size04 size05 size06
XS S M L XL
问题是,对于导出,size_bucket的值不正确,并且与另一个表中的相关sizexx列不对应。因此,我有一个包含正确映射的表,其中包含各种sizexx列的正确值
我需要做的是确定哪个列包含正确的值,并将size_bucket的值切换为正确的对应sizexx列
因此,映射表中的正确值是
size02 size03 size04 size05 size06 size07
XXS XS S M L XL
最后,这里是一个示例psuedo查询,我正试图创建该查询,以获得大小_bucket的正确值:
SELECT
CASE (u.sizebucket)
WHEN '1' THEN u.sizebucket
WHEN '2' THEN
CASE WHEN u.size_desc = k.size02 THEN '2' END
CASE WHEN u.size_desc = k.size03 THEN '3' END
/* and so on for all the different sizexx columns */
WHEN '3' THEN
/* REPEAT ABOVE CODE */
/* REPEAT WHEN FOR ALL SIZES */
END AS size_bucket,
k.size_name, u.size_desc, k.size01, k.size02, k.size03, k.size04,
k.size05, k.size06, k.size07, k.size08, k.size09, k.size10, k.size11,
k.size12, k.size13, k.size14, k.size15
FROM ExportView u
INNER JOIN size_map_table k ON u.Size_Code = k.size_code
如果您有任何关于如何以更简单的方式进行此操作的建议或想法,我们将不胜感激。我甚至还不确定我在这里的想法是否可行
以下是根据您的请求提供的一些数据示例:
对于视图,所有列都是nvarchar,映射表中也是如此 视图中的一些示例数据:
size_code size_desc size_bucket
LDS XS 3
LDS S 4
LDS M 5
LDN 0 2
LDN 2 3
LDN 4 4
在映射表中:
size_code size01 size02 size03 size04 size05
LDS XS
LDS S
LDS M
LDN 0
LDN 2
LDN 4
预期结果将是更正大小_bucket的值,如下所示:
size_code size_desc size_bucket
LDS XS 2
LDS S 3
LDS M 4
LDN 0 1
LDN 2 2
LDN 4 3
除了所需的输出之外,还需要一些ddl和样本数据。我们在这里帮不了什么忙,因为我们不知道您的数据是什么样子的。sqlfiddle.com是一个很好的起点。对于视图,所有列都是nvarchar,映射表中也是如此。视图中的一些示例数据:Ooops,点击enter。编辑…好的,请添加预期结果。非常感谢。我会留下这个作为提醒,稍后再回来,但我仍然不确定是否理解你的要求。