sql server中查询出14条数据,通过hibernate的queryByNativeSql()方法查询返回的list返回的1000多条? 10
selectcast(b.stcdasvarchar(8))stcd,cast(b.stnmasvarchar(30))stnm,rs.avz,rs.avq,rs.wrn...
select cast(b.stcd as varchar(8)) stcd,
cast(b.stnm as varchar(30)) stnm,
rs.avz,
rs.avq,
rs.wrnf,
rs.idtm,
rs.sttdrcd
from hw.st_stbprp_b b
left join (select (case
when r.stcd is null then
s.stcd
else
r.stcd
end) as stcd,
(case
when r.idtm is null then
s.idtm
else
r.idtm
end) as idtm,
(case
when r.sttdrcd is null then
s.sttdrcd
else
r.sttdrcd
end) as sttdrcd,
r.avz,
r.avq,
s.wrnf
from hw.st_rvav_r r
full join hw.st_sedrf_r s
on r.stcd = s.stcd
and r.idtm = s.idtm
and r.sttdrcd = s.sttdrcd) rs
on b.stcd = rs.stcd
where 1 = 1 and rs.sttdrcd = 1
and b.stcd in('10900300')
and ((rs.idtm >= to_date('2010/05/01 00:00:00','yyyy/mm/dd hh24:mi:ss') and rs.idtm <= to_date('2012/11/01 23:59:59','yyyy/mm/dd hh24:mi:ss')))
通过断点,hibernate生成的sql在sqlserver中查询也是14条。为什么返回的不对呢。 展开
cast(b.stnm as varchar(30)) stnm,
rs.avz,
rs.avq,
rs.wrnf,
rs.idtm,
rs.sttdrcd
from hw.st_stbprp_b b
left join (select (case
when r.stcd is null then
s.stcd
else
r.stcd
end) as stcd,
(case
when r.idtm is null then
s.idtm
else
r.idtm
end) as idtm,
(case
when r.sttdrcd is null then
s.sttdrcd
else
r.sttdrcd
end) as sttdrcd,
r.avz,
r.avq,
s.wrnf
from hw.st_rvav_r r
full join hw.st_sedrf_r s
on r.stcd = s.stcd
and r.idtm = s.idtm
and r.sttdrcd = s.sttdrcd) rs
on b.stcd = rs.stcd
where 1 = 1 and rs.sttdrcd = 1
and b.stcd in('10900300')
and ((rs.idtm >= to_date('2010/05/01 00:00:00','yyyy/mm/dd hh24:mi:ss') and rs.idtm <= to_date('2012/11/01 23:59:59','yyyy/mm/dd hh24:mi:ss')))
通过断点,hibernate生成的sql在sqlserver中查询也是14条。为什么返回的不对呢。 展开
展开全部
因为left join是返回左边的表的记录条数,所以,你的这个脚本要对右表做isnull判断
where 后面的 rs.sttdrcd = 1 改为isnull(rs.sttdrcd,0) = 1
isnull(b.stcd,'') in('10900300') 这样
where 后面的 rs.sttdrcd = 1 改为isnull(rs.sttdrcd,0) = 1
isnull(b.stcd,'') in('10900300') 这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
TableDI
2024-07-18 广告
2024-07-18 广告
`VLOOKUP` 匹配出错误的数据通常是由于以下几个原因:1. **查找值错误**:输入的查找值与数据源中的值不匹配,可能是因为拼写错误、大小写不一致或存在不可见的字符。2. **查找区域设置错误**:查找区域的首列必须包含要查找的值,且...
点击进入详情页
本回答由TableDI提供
展开全部
hibernate的查询条件顺序和SQL的顺序一样吗,SQL查询解析是从后向前的,顺序不一样结果也可能不一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定是你程序里,拼接出来的SQL字符串和实际执行的这个字符串不一样。
我能帮你找到问题,私信我,留下Q。
我能帮你找到问题,私信我,留下Q。
更多追问追答
追问
这个sql就是拼接后复制到sqlserver中执行的。一样的。
追答
未必吧,数据库是忠实的按照你的SQL语句来执行的
不可能两个一样的语句得出来的结果不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询