需要将1行数据转置为1列但多行

时间:2019-07-23 13:16:36

标签: mysql transpose

我有3列和1行:

Sequence     01         02
100001       002        004

但是需要转置为2列2行:

Sequence   Family
1000001    002
1000001    004

但是我的MySQL受限制,希望能提供一些帮助。

下面我尝试过的MySQL代码:

SELECT tracabilite AS Sequence,
(CASE WHEN MID(CodeBarre,72,3) = '002' THEN '002' ELSE NULL END) AS 'Family',
(CASE WHEN MID(CodeBarre,75,3) = '004' THEN '004' ELSE NULL END) AS 'Family'
FROM table_msg WHERE tracabilite = 10000004
GROUP BY Family;'

但是上面的代码显示:

Sequence    Family  Family
1000001       002   002

1 个答案:

答案 0 :(得分:0)

基于您尝试过的SQL,看来您有两列(而不是三列)tracabilite和CodeBarre。如果您完整显示了实际的行内容,那将非常有帮助。我仍然不确定您的常量值是什么(1000001或100001),但是您会明白的:

SELECT tracabilite AS Sequence, MID(CodeBarre,72,3) AS 'Family'
FROM table_msg WHERE tracabilite = 1000001 AND MID(CodeBarre,72,3) = '002'
UNION
SELECT tracabilite AS Sequence, MID(CodeBarre,75,3) AS 'Family'
FROM table_msg WHERE tracabilite = 1000001 AND MID(CodeBarre,75,3) = '004'
;

我们正在执行两个SELECT语句的UNION。第一条SELECT语句应产生:

1000001 002

,第二条SELECT语句应产生:

1000001 004