我正在使用这种结构处理相同的旧死亡原因数据库:
+--------------------+---------------+------+-----+---------+-------+
| 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中使用吗?
答案 0 :(得分:1)
您可以使用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