早教吧 育儿知识 作业答案 考试题库 百科 知识分享

sql语句错误deletefromTuserMsgwhereuserid=102025andidnotin(selecttop5*fromTuserMsgwhereuserid=102025orderbylasttimedesc)报错:“当没有用EXISTS引入子查询时,在选择列表中只能指定一个表达式。”

题目详情
sql语句错误
delete from T_userMsg where userid=102025 and id not in (select top 5 * from T_userMsg where userid=102025 order by lasttime desc)
报错:“当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。”
▼优质解答
答案和解析
把not in后面的select子句中的*字段列表指定为id就行了。这句sql的意思是只保留userid=102025的按lasttime最新时间的前五行数据,其他userid=102025的所有数据都删除。
修改后的语句为:(top 5 *这里改为top 5 id)
delete from T_userMsg where userid=102025 and id not in (select top 5 id from T_userMsg where userid=102025 order by lasttime desc)