我正在使用以下结构在相同的旧死亡原因数据库上进行工作:

+--------------------+---------------+------+-----+---------+-------+
| 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/

10-13 00:12