我正在使用以下结构在相同的旧死亡原因数据库上进行工作:
+--------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------+------+-----+---------+-------+
| decesso | int(1) | NO | | NULL | |
| anno | year(4) | NO | | NULL | |
| mese | int(2) | NO | | NULL | |
| data | varchar(10) | NO | | NULL | |
| age | int(3) | NO | | NULL | |
| sex | enum('M','F') | NO | | NULL | |
| cod_comune | int(6) | NO | | NULL | |
| nome_comune | varchar(40) | NO | | NULL | |
| causa_fin | varchar(4) | NO | | NULL | |
| cod_tit | varchar(3) | YES | | NULL | |
+--------------------+---------------+------+-----+---------+-------+
实际上,每一行都是死亡记录,无论原因,城镇,年龄和事物如何。特别地,列
cod_tit
包含疾病宏家族的代码,例如I = cancer, II = heart diseases
等。因此,该列的构成类似于I,I,IX,XX,...
我需要的是每种疾病都有一个专栏,如果这个家伙死于另一个原因,则值为0;如果那个死于那个原因,则值为1;像这样的矩阵
+--------------------------------------------+
| age | sex | town | dis_I | dis_II | dis_III|
+--------------------------------------------+
| 85 | M | 0001 | 1 | 0 | 0 |
| 59 | M | 0001 | 0 | 0 | 1 |
| 78 | F | 0200 | 0 | 1 | 0 |
| 90 | M | 0032 | 0 | 0 | 2 |
| ...... |
| and so on |
+--------------------------------------------+
在MySQL中有可能吗?
最佳答案
您可以使用CASE
语句
SELECT age,sex,town,
CASE cod_tit WHEN 'I' THEN 1 ELSE 0 END AS dis_I ,
CASE cod_tit WHEN 'II' THEN 1 ELSE 0 END AS dis_II ,
...
FROM tableName
关于mysql - 胶版专栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33998358/