2016-07-30 9 views
0

Ich habe folgende Daten in der Tabelle in SQL Geige gegeben.Mysql Wert als Label-Matrix

http://sqlfiddle.com/#!9/6d8fd5/1

Problem: In Ausgabe folgenden es denselben Wert in allen Spalte wiederholen.

label   XS  S  M  L  XL  2XL  3XL  4XL 
Chest girth  70  70  70  70  70  70  70  70 
length   66  66  66  66  66  66  66  66 
Sleeve length 62  62  62  62  62  62  62  62 

Lösung: Ich möchte XS Wert in XS Spalte, S Wert in S Säule usw.

My SQL Query:

SELECT 
    label, 
    VALUE AS XS, 
    VALUE AS S, 
    VALUE AS M, 
    VALUE AS L, 
    VALUE AS XL, 
    VALUE AS 2XL, 
    VALUE AS 3XL, 
    VALUE AS 4XL 
FROM 
    test 
GROUP BY 
    label 

Antwort

1

Sie kann eine Abfrage wie folgt verwenden, um Ihr Ergebnis zu erhalten:

SELECT 
    label, 
    MAX(IF(size_label = 'XS', VALUE,null)) AS XS, 
    MAX(IF(size_label = 'S ', VALUE,null)) AS S, 
    MAX(IF(size_label = 'M', VALUE,null)) AS M, 
    MAX(IF(size_label = 'L', VALUE,null)) AS L, 
    MAX(IF(size_label = 'XL', VALUE,null)) AS XL, 
    MAX(IF(size_label = '2XL',VALUE,null)) AS 2XL, 
    MAX(IF(size_label = '3XL',VALUE,null)) AS 3XL, 
    MAX(IF(size_label = '4XL',VALUE,null)) AS 4XL 
FROM 
    test 
GROUP BY 
    label; 

Probe

MariaDB [yourschema]> SELECT 
    -> label, 
    -> MAX(IF(size_label = 'XS', VALUE,null)) AS XS, 
    -> MAX(IF(size_label = 'S ', VALUE,null)) AS S, 
    -> MAX(IF(size_label = 'M', VALUE,null)) AS M, 
    -> MAX(IF(size_label = 'L', VALUE,null)) AS L, 
    -> MAX(IF(size_label = 'XL', VALUE,null)) AS XL, 
    -> MAX(IF(size_label = '2XL',VALUE,null)) AS 2XL, 
    -> MAX(IF(size_label = '3XL',VALUE,null)) AS 3XL, 
    -> MAX(IF(size_label = '4XL',VALUE,null)) AS 4XL 
    -> FROM 
    -> test 
    -> GROUP BY 
    -> label; 
+---------------+------+------+------+------+------+------+------+------+ 
| label   | XS | S | M | L | XL | 2XL | 3XL | 4XL | 
+---------------+------+------+------+------+------+------+------+------+ 
| Chest girth | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 
| length  | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 
| Sleeve length | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 
+---------------+------+------+------+------+------+------+------+------+ 
3 rows in set (0.00 sec) 

MariaDB [yourschema]> 
+0

Dank @BrandBuffen Es ist wie Charme arbeiten – Sadikhasan