在线等,请教一下,hibernate 原生 sql语句 查询lag( , , ),出现语法错误

String queryString = "select smsid from Sms where smsid = ( select c.p from ( select smsid,lag(smsid,1,0) over (order by smsid) as p from Sms) c where c.smsid= "+ smsid + ")";

    SQLQuery sqlq = getSession().createSQLQuery(queryString);

    报了org.hibernate.exception.SQLGrammarException: could not execute query
    错误
    请指点下哪里出错,感激不尽

应该是smsid in (select xx from xx)