我正在使用MS Server
数据库。这是我的查询:
SELECT count(DISTINCT st.id)
FROM nedb.EducationInfo ei
JOIN nedb.School sch ON ei.school_id = sch.id
JOIN nedb.Student st ON ei.student_id = st.id
WHERE EXISTS(SELECT value
FROM OPENJSON(sch.trimmedQuestionnaire,'$."5"."value"')
WHERE (value like '02.%'
and value not in ('02.6.5','02.6.6','02.6.7','02.6.8'))
or value like '07.%'
or value in ('08.3','08.4','08.5','08.6','09.3','09.4')
or value like '03.%')
and st.updatedAt between '2019-11-09' and '2019-11-11';
我正在尝试将此查询转换为hql
,如下所示:
SELECT count(DISTINCT ei.student) FROM EducationInfo ei JOIN Student st JOIN School sch WHERE EXISTS(SELECT value FROM OPENJSON(sch.trimmedQuestionnaire,'$."5".value') WHERE (value like '02.%' and value not in ('02.6.5','02.6.8')) or value like '07.%' or value in ('08.3','09.4') or value like '03.%') and st.stamp.updatedAt between :fromDate and :toDate
但是我得到了这个例外:
antlr.NoViableAltException: unexpected token: OPENJSON
hql
知道如何使用OPENJSON
吗?如果没有,有什么替代方法?