Police in the canton of St. Gallen said the 17-year-old Latvian national carried out the attack at the post office in the northeast town of Flums.
Swiss police say knife-wielding asylum seeker killed by officer
Several people were wounded in the initial attack before the assailant "escaped with a stolen car", police spokesperson Krusi Hanspeter said in a statement.
The attacker later injured another person at a gas station where he was shot by police and apprehended, Hanspeter said.
"At this stage, there is no evidence of a link to terrorism", he added, noting that police were continuing to gather information about the assailant.
Swiss prosecutors will examine new Polanski rape accusation
Police said the severity of the injuries suffered by the victims was not immediately clear.
According to the Blick news site, police later raided a house in the area as part of the investigation.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ