I have been_in_ this school for 10 years.(at/in)我在这所学校已经有十年了. I have been_at_ this school for 10 years.(at/in)我在这所学校已经有十年了. 这两句都对,只是用法上略有差异: 对此辨析,有些语法家有此认识: be in school表示“在学校(身份未必是学生)”,可能是工作、暂时学习或办事、找人等 而be at school “在上学”,强调身份是学生. 下面是《英语常见问题解答大词典》【哈尔滨工业大学—赵振才教授编著】的说法: 表示“在校学习、上学”,英国英语习惯用be at school.如: We were at school together.我们曾一起上学. 但是,美国英语可用 be in school 表达以上含义.如: Young Tom was in school for only three months.