1.原始数据:(4个季度的销售金额分为四列)
给定一个公司所有员工各个季度销售金额的表格 employee_sales:
问题:依据 employee_id,把四个字段的数据放到一个字段中。
思路:可以先查询出四个字段,然后用UNION ALL 组合。
SELECT employee_id,employee_name,'一季度',sales_amount_q1
from employee_sales
UNION ALL
SELECT employee_id,employee_name,'二季度',sales_amount_q2
from employee_sales
UNION ALL
SELECT employee_id,employee_name,'三季度',ales_amount_q3
from employee_sales
UNION ALL
SELECT employee_id,employee_name,'四季度',sales_amount_q4
from employee_sales
ORDER BY employee_id;
3.查询结果
1.原始数据:(员工四季度的绩效考核等级和销售金额都被放进了一个值里)
给定一个公司员工四季度的绩效考核等级和销售金额的表格 employee_assessment:
问题:依据 employee_id,把四个字段的数据放到一个字段中。
思路:可以先查询出一字段的不同位置的值,然后用UNION ALL 组合。
SELECT employee_id,employee_name,'1',right(left(assessment_level,1),1)
from employee_assessment
UNION ALL
SELECT employee_id,employee_name,'2',right(left(assessment_level,2),1)
from employee_assessment
UNION ALL
SELECT employee_id,employee_name,'3',right(left(assessment_level,3),1)
from employee_assessment
UNION ALL
SELECT employee_id,employee_name,'4',right(left(assessment_level,4),1)
from employee_assessment
ORDER BY employee_id;
3.查询结果
CREATE TABLE sequence(seq_num INT);
INSERT INTO sequence
VALUES
(1),
(2),
(3),
(4);
SELECT
a.*, right(left(a.assessment_level,b.seq_num),1), substring(a.assessment_level,b.seq_num,1)
FROM employee_assessment a ,sequence b
WHERE LENGTH(a.assessment_level)>=b.seq_num;
SUBSTRING_INDEX(SUBSTRING_INDEX(sales_amount,',',seq_num),-1)