SQL检索,但检索结果中有某字段内容重复的数据只保留1条显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL检索,但检索结果中有某字段内容重复的数据只保留1条显示相关的知识,希望对你有一定的参考价值。
--判断一个字段重复就只显示一条,用distinct是不行的,可以用row_number()根据这个字段分组显示优先级,然后只取每个组的第一条select * from
(select *,row_number() over(partition by 判断重复的字段名) as f_id from 表名) t
where f_id =1 参考技术A 我就默认你是想知道两行数据所有字段完全相同的情况了,
select distinct * from tablename
没有使用 Java 从数据库视图中检索到结果
【中文标题】没有使用 Java 从数据库视图中检索到结果【英文标题】:No results retrieved from database view using Java 【发布时间】:2013-11-12 11:18:48 【问题描述】:我的数据库中有一个名为V_ENTITY
的视图,其中填充了一些条目。在 Eclipse 中使用 SQL 剪贴簿,我可以轻松地执行返回所需结果的查询。
但是,当我尝试从我的 DAO 类中检索条目时,我什么也得不到。我的计数返回 0 作为条目数,而其中有 7 个,我可以通过剪贴簿使用本机 SQL 查询来获取它们。
我为该特定视图创建了一个单独的实体:
@Entity
@Table(name = "V_ENTITY")
public class ViewEntity
...
我使用 JPA2 CriteriaQuery API 进行动态查询。这是困扰我的 count 示例:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<ViewEntity> transactionQuery = cb.createQuery(ViewEntity.class);
Root<ViewEntity> ViewEntityRoot = transactionQuery.from(ViewEntity.class);
Predicate[] predicates = new Predicate[<someSize>]
predicates[<someIndex>] = cb.equal(
root.get("foreignName").as(String.class),
"%" + foreignName + "%"
)
CriteriaQuery<Long> countQuery = cb.createQuery(Long.class);
countQuery.select(cb.count(ViewEntityRoot));
countQuery.where(predicates);
TypedQuery<Long> finalQuery = entityManager.createQuery(countQuery);
return finalQuery.getSingleResult().intValue();
谁能帮我找出我的代码/思维中的缺陷?
【问题讨论】:
使用<property name="show_sql">true</property>
属性向我们展示生成的sql请。
我不熟悉 CriteriaQuery,也不熟悉 ScrapBook。但我的第一个想法是:您是否将您的价值观提交到数据库?只要它们没有被提交,它们就只对插入值的用户可见。
@Templar,请发表您的评论作为答案,我根据您的建议找到了解决方案。
【参考方案1】:
使用<property name="show_sql">true</property>
属性向我们展示生成的sql pls
【讨论】:
以上是关于SQL检索,但检索结果中有某字段内容重复的数据只保留1条显示的主要内容,如果未能解决你的问题,请参考以下文章