J'ai vu une question d'entretien postée par quelqu'un d'autre dans le groupe, =. =, comment interroger ?
L'image du titre est en chinois, cliquez ici.
Cas déterminé par le cours :
Mise en ?uvre du CASE :
SELECT
`Name`,
MAX(
CASE
WHEN Course = 'Chinase' THEN
Score
END
) AS Chinase,
MAX(
CASE
WHEN Course = 'Math' THEN
Score
END
) AS Math,
MAX(
CASE
WHEN Course = 'English' THEN
Score
END
) AS English
FROM
table1
GROUP BY
`Name`
Mise en ?uvre du SI?:
SELECT
`Name`,
SUM(IF (Course = 'Chinase', Score, 0)) AS Chinase,
SUM(IF (Course = 'Math', Score, 0)) AS Math,
SUM(IF (Course = 'English', Score, 0)) AS English
FROM
table1
GROUP BY `Name`
Le cours n'est pas s?r, utilisez la dynamique?:
SET @CC='';
SELECT @CC:=CONCAT(@CC,'SUM(IF(Course=\'',Course,'\'',',Score,0)) AS ',Course,',') FROM (SELECT DISTINCT Course FROM table1) A;
SET @HH=CONCAT('SELECT Name,',LEFT(@CC,LENGTH(@CC)-1),' FROM table1 GROUP BY Name');
PREPARE stmt FROM @HH;
EXECUTE stmt;
select name, sum(case when Course='Chinese' then Score end) as Chinese,
sum(case when type='Math' then Score end) as Math,
sum(case when type='English' then Score end) as English
from table1
group by name
Vous devriez apprendre le principe
Baidu "conversion de colonne de ligne mysql"
Il est inutile d'apprendre uniquement ce SQL
Ce type de SQL magique est utilisé lors de l'élaboration de statistiques de données, ce qui n'est généralement pas utilisé dans le travail PHPer.