我有一个company60 列的表。目标是创建一个工具来查找、比较和消除此表中的重复项。
示例:我找到 2 家可能相同的公司,但我需要知道这两行之间哪些值(列)不同才能继续。
我认为可以逐列比较 x 60,但我寻找更简单、更通用的解决方案。
就像是:
SELECT * FROM company where co_id=22
SHOW DIFFERENCE
SELECT * FROM company where co_id=33
Run Code Online (Sandbox Code Playgroud)
结果应该是不同的列名。
我使用LinkedHashSet删除重复的条目.但对于以下自定义模型,Set仍保留重复条目.请帮我找到错误.覆盖equals方法有什么问题吗?对于您的类型信息,我只在他们的电话,类型和状态相同时处理两个节点等于.
public class BlockNode {
public int id;
public int type;
public int status;
public String phone;
public String date;
public String content;
@Override
public boolean equals(Object o) {
return this.toString().equals(((BlockNode)o).toString());
}
@Override
public String toString() {
return "number:" + phone + " type:" + type + " status:" + status + "\n";
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个如下定义的类:在这个类中,我有一个菜单,用户可以在其中添加新的Car.当他们选择此选项时,将提示以下内容:public class CarHireSystem {
private static final Car[] carList = new Car[100];
private static int carCount = 0;
System.out.print("Enter car ID: ");
String carID = sc.nextLine();
System.out.print("Enter car description: ");
String cardescription = sc.nextLine();
System.out.print("Enter hire fee: $");
Double hireFee = sc.nextDouble();
sc.nextLine();
carList[carCount] = new Car(carID,carDescription,hireFee);
carCount++;
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来验证输入到阵列中的车辆ID尚未被用户输入并输入错误消息(如果已输入)并返回主菜单.该数组最初是空的.如何使用boolean或do while循环执行此操作.
我已将此光标写入佣金报告.会发生什么是佣金来自一个表,记录是另一个表.我根据某些标准匹配两个(没有完全匹配).问题是存在记录的重复.当我将佣金与records表格匹配时,可能会导致重复这些重复.因此,代表获得更多报酬.另一方面,佣金表中也有重复,但这些都是有效的,因为它们简单意味着账户已经支付了2个月.
我写了这个查询,但需要5分钟才能运行.我在记录表中有50,000条记录,在佣金表中有100,000条记录.有什么方法可以改进这个游标吗?
/* just preparation of cursor, this is not time consuming */
CREATE TABLE #result
(
repid INT,
AccountNo VARCHAR(100),
supplier VARCHAR(15),
CompanyName VARCHAR(200),
StartDate DATETIME,
EndDate DATETIME,
Product VARCHAR(25),
commodity VARCHAR(25),
ContractEnd DATETIME,
EstUsage INT,
EnrollStatus VARCHAR(10),
EnrollDate DATETIME,
ActualEndDate DATETIME,
MeterStart DATETIME,
MeterEnd DATETIME,
ActualUsage INT
)
DECLARE @AccountNo VARCHAR(100)
DECLARE @supplier VARCHAR(10)
DECLARE @commodity VARCHAR(15)
DECLARE @meterstart DATETIME
DECLARE @meterEnd DATETIME
DECLARE @volume FLOAT
DECLARE @RepID INT
DECLARE @Month INT
DECLARE @Year INT
SET …Run Code Online (Sandbox Code Playgroud)