SELECT b.idno as 身份证号, (year(NOW())- substring(b.idno,7,4)) as 年龄, case if(length(b.idno)=18, cast(substring(b.idno,17,1) as UNSIGNED)%2, if(length(b.idno)=15,cast(substring(b.idno,15,1) as UNSIGNED)%2,3)) when 1 then '男' when 0 then '女' else '未知' end AS 性别 FROM table.name as b