56,687
社区成员
发帖
与我相关
我的任务
分享
SELECT * from (SELECT
ORDERNO,
TypeName,
CONCAT(
'',
CASE
WHEN TypeName = '女装' AND CARTON_A > 0 THEN
(
CASE
WHEN TypeName = '女装' THEN
CONCAT(
'',
(
CASE
WHEN CARTON_A > 0 THEN
CAST(CARTON_A AS CHAR)
ELSE
0
END
),
' *C_A, '
)
ELSE
0
END
) ELSE '' END,
CASE
WHEN TypeName = '女装' AND CARTON_B > 0 THEN
(
CASE
WHEN TypeName = '女装' THEN
CONCAT(
'',
(
CASE
WHEN CARTON_B > 0 THEN
CAST(CARTON_B AS CHAR)
ELSE
0
END
),
' *C_B, '
)
ELSE
0
END
)ELSE '' END,
CASE
WHEN TypeName = '女装' AND CARTON_C > 0 THEN
(
CASE
WHEN TypeName = '女装' THEN
CONCAT(
'',
(
CASE
WHEN CARTON_C > 0 THEN
CAST(CARTON_C AS CHAR)
ELSE
0
END
),
' *C_C'
)
ELSE
0
END
) ELSE '' END
) AS numType
FROM
MyTest1) T
WHERE numType<>''
mysql> select * from MyTest1;
+---------+----------+----------+----------+----------+--------+--------+--------+---------+---------+
| ORDERNO | TypeName | CARTON_A | CARTON_B | CARTON_C | BULK_A | BULK_B | BULK_C | WHOLE_A | WHOLE_B |
+---------+----------+----------+----------+----------+--------+--------+--------+---------+---------+
| 1 | F | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 |
| 2 | F | 0 | 2 | 3 | 0 | 0 | 0 | 0 | 0 |
| 3 | M | 0 | 0 | 0 | 7 | 4 | 3 | 0 | 0 |
| 4 | M | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 15 |
| 5 | M | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 6 | C | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 7 | C | 0 | 0 | 0 | 20 | 23 | 3 | 0 | 0 |
| 8 | C | 0 | 0 | 0 | 0 | 0 | 0 | 14 | 52 |
+---------+----------+----------+----------+----------+--------+--------+--------+---------+---------+
8 rows in set (0.00 sec)
mysql> select ORDERNO,TypeName,
-> CONCAT_WS(',',
-> IF(CARTON_A>0,concat(CARTON_A,'*CARTON_A'),null),
-> IF(CARTON_B>0,concat(CARTON_B,'*CARTON_B'),null),
-> IF(CARTON_C>0,concat(CARTON_C,'*CARTON_C'),null),
-> IF(BULK_A>0,concat(BULK_A,'*BULK_A'),null),
-> IF(BULK_B>0,concat(BULK_B,'*BULK_B'),null),
-> IF(BULK_C>0,concat(BULK_C,'*BULK_C'),null),
-> IF(WHOLE_A>0,concat(WHOLE_A,'*WHOLE_A'),null),
-> IF(WHOLE_B>0,concat(WHOLE_B,'*WHOLE_B'),null)
-> ) as k
-> from MyTest1;
+---------+----------+----------------------------------+
| ORDERNO | TypeName | k |
+---------+----------+----------------------------------+
| 1 | F | 1*CARTON_A,2*CARTON_B,3*CARTON_C |
| 2 | F | 2*CARTON_B,3*CARTON_C |
| 3 | M | 7*BULK_A,4*BULK_B,3*BULK_C |
| 4 | M | 10*WHOLE_A,15*WHOLE_B |
| 5 | M | 1*CARTON_B |
| 6 | C | 5*CARTON_A,1*CARTON_B |
| 7 | C | 20*BULK_A,23*BULK_B,3*BULK_C |
| 8 | C | 14*WHOLE_A,52*WHOLE_B |
+---------+----------+----------------------------------+
8 rows in set (0.00 sec)
mysql>