hql 使用charindex和substring的问题

本文探讨了一个关于HQL与SQL中Substring函数使用的疑惑。作者在使用HQL时遇到一个问题,即Substring函数在截取字符串时的行为与预期不符。通过对比HQL与SQL的实现方式,尝试理解为何会出现这种差异,并寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[code]from ZDConnect zdc where zdc.sort.category=? order by substring(zdc.result, 0, charindex('/', zdc.result, 0)) desc[/code]
这是我的hql语句
[code]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[/code]
这是控制台打印的出来的


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


在我sql里面用
[code]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[/code]
这句在sql是没有问题的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值