
/**
* 功能:根据品牌查询
*
* @param pageSize
* 每页大小
* @param currentLPagem
* 当前第几页
* @param productBlack
* 产品品牌
* @param productBlackItem
* 产品分类
* @param productSize
* 产品尺码
* @param keyWord
* 搜索关键字
* @return
*/
public pageBean seachProductByBrank(int pageSize, int currentLPage,
String product_Brank, String product_itemName) {
// final String hql = "from " + OgrilProducts.class.getName()
// + " where product_Brank='" + product_Brank
// + "' and product_itemName='" + product_itemName
// + "' order by product_registerDate desc"
final String hql = " from "
+ OgrilProducts.class.getName()
+ " as product where product.productItemName='"
+ product_itemName
+ "' and productBrank='"
+ product_Brank
+ "' and not exists( from "
+ OgrilProducts.class.getName()
+ " where productItemName='"
+ product_itemName
+ "' and productBrank='"
+ product_Brank
+ "' and productItemNumber=product.productItemNumber and productId<product.productId )"
int allRow = this.getAllRowCount(hql)// 总记录数
int totalPage = pageBean.countTotalpage(pageSize, allRow)// 总页数
final int offset = pageBean.countOffset(pageSize, currentLPage)// 当前页开始记录
final int length = pageSize
final int currentPage = pageBean.countCurrentPage(currentLPage)
List list = this.queryForPage(hql, offset, length)// 记录
// 把分页信息保存到Bean中
pageBean pagebean = new pageBean()
pagebean.setPageSize(pageSize)
pagebean.setCurrentPage(currentPage)
pagebean.setAllRow(allRow)
pagebean.setTotalPage(totalPage)
pagebean.setList(list)
return pagebean
}
1、在电脑上打开要去掉重复数据的数据库,这里新建一张含有重复数据的user表。
2、输入“select * from user where name in (select name from user group by name having count(name) >1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。
3、通过“delete from user where name in (select name from user group by name having count(name) >1) ”sql语句删除姓名重复的数据。
4、也可以通过“select distinct name from user”sql语句来去掉重复数据,这里去掉了张三的重复数据。
5、通过“select distinct class from user”sql语句来去掉班级相同的重复数据。
示例假设存在一个产品信息表Products,其表结构如下:
CREATE TABLE Products (ProductID int,
ProductName nvarchar (40),
Unit char(2),
UnitPrice money
)
表中数据如图:
图中可以看出,产品Chang和Tofu的记录在产品信息表中存在重复。现在要删除这些重复的记录,只保留其中的一条。步骤如下:
第一步——建立一张具有相同结构的临时表
CREATE TABLE Products_temp (ProductID int,
ProductName nvarchar (40),
Unit char(2),
UnitPrice money
)
第二步——为该表加上索引,并使其忽略重复的值
方法是在企业管理器中找到上面建立的临时表Products _temp,单击鼠标右键,选择所有任务,选择管理索引,选择新建。如图2所示。
按照图2中圈出来的地方设置索引选项
第三步——拷贝产品信息到临时表
insert into Products_temp Select * from Products此时SQL Server会返回如下提示:
服务器: 消息 3604,级别 16,状态 1,行 1
已忽略重复的键。
它表明在产品信息临时表Products_temp中不会有重复的行出现。
第四步——将新的数据导入原表
将原产品信息表Products清空,并将临时表Products_temp中数据导入,最后删除临时表Products_temp。
delete Products insert into Products select * from Products_temp drop table Products_temp这样就完成了对表中重复记录的删除。无论表有多大,它的执行速度都是相当快的,而且因为几乎不用写语句,所以它也是很安全的
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)