hql 使用charindex和substring的问题

from ZDConnect zdc where zdc.sort.category=? order by substring(zdc.result, 0, charindex('/', zdc.result, 0)) desc

这是我的hql语句
select top 10 zdconnect0_.linkid as linkid2_, zdconnect0_.linkname as linkname2_, zdconnect0_.address as address2_, zdconnect0_.detailid as detailid2_, zdconnect0_.result as result2_, zdconnect0_.sort as sort2_, zdconnect0_.hot as hot2_ from link zdconnect0_, classdetail zdsort1_ where zdconnect0_.detailid=zdsort1_.detailid and zdsort1_.masterid=? order by substring(zdconnect0_.result, 0, charindex('/') desc

这是控制台打印的出来的


substring(zdconnect0_.result, 0, charindex('/')
我就不知道为什么它要差 substring(zdconnect0_.result, 0, charindex('/',zdconnect0_.result, 0)) 一段数据呢


在我sql里面用
SELECT TOP 10 zdconnect0_.*
FROM link zdconnect0_ INNER JOIN
      classdetail zdsort1_ ON zdconnect0_.detailid = zdsort1_.detailid
WHERE (zdsort1_.masterid = 1)
ORDER BY SUBSTRING(zdconnect0_.result, 0, CHARINDEX('/', zdconnect0_.result, 
      0)) DESC

这句在sql是没有问题的

当然我现在可以直接用createSQLQuery这个方法来使用
但现在只是希望有人能告诉我,它这里为什么会差这一段...好解决我困惑1个小时的问题

你可能感兴趣的:(sql)