一张表table1
吧里面有 30W 数据,字段为id bigint(20),full_name varchar(66) age tinyint(3),code varchar(6) gender tinyint(1)
要展示符合下面这些条件的记录:
如果年龄大于 1 岁,code 在( P00-P96 )这个范围内,则认为存在零概率事件-年龄与原因存在逻辑错误。 如果年龄在 15-55 岁以外,并为女性,code 在( O00-O99 )这个范围内,则认为存在零概率事件-年龄与原因存在逻辑错误 如果年龄在 15 岁以下,code 在( C11 )、C15 )、( C16 )、C18-C21 )、( C22 )、( C33-C34 )、( C67 )访问内,则认为存在零概率事件-年龄与原因存在逻辑错误 如果年龄在 5 岁以下,code 在( I05-I09 )范围内,则认为存在零概率事件-年龄与原因存在逻辑错误
这种 sql 我应该怎么写?想了半天,只想出了一个最笨的方法 SELECT * FROM table1 WHERE (age>1 AND age<5 AND code IN('P00','P01','I05','I09')) OR (age>=5 AND age<15 AND code IN('C11','C15','C67') OR (age>=15 and age<55 AND gender=0 AN code IN('O00','O99')))
这样,我感觉这样不行呀,求大神们给一个牛逼一点的答案吧,谢谢啦