繁体   English   中英

为每个唯一列值插入记录

[英]INSERT record for each unique column value

我有一张桌子,上面有诸如...的记录

FileName     |   A1   |   A2   |   A3   |
TwinCity.fi     233.3   235.33   379.8
CountryVil.fi   37.8             74.58

我需要为每个文件名和唯一的A值在另一个表中插入一条记录,因此对于上述内容,我将插入...

TwinCity.fi    233.3
TwinCity.fi    235.33
TwinCity.fi    379.8
CountryVil.fi  37.8
CountryVil.fi  74.58

我知道我需要做什么,但是我该怎么做?

您可以使用UNPIVOT:

SELECT DISTINCT 
  filename,
  vals
FROM 
   (SELECT 
        filename,
        a1,
        a2,
        a3
   FROM 
      foo) p
UNPIVOT
   (vals FOR counts IN 
      (a1,a2,a3)
) AS bar

SQLFiddle在这里

怎么样, 在这里提琴

INSERT [TableTo]
SELECT * FROM
(
    SELECT [FileName], [A1] [Value] FROM [TableFrom]
    UNION
    SELECT [FileName], [A2] [Value] FROM [TableFrom]
    UNION
    SELECT [FileName], [A3] [Value] FROM [TableFrom]
) [M]
WHERE [M].[Value] IS NOT NULL;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM