我有一个人表,插入了不同身份的重复人.我想删除名称重复的人,只保留具有最小ID的人.对于eG,应保留具有ID 18398的Absalon记录,并删除所有其他重复记录.
我有一张有人名地址和职称的表.名字有时会重复.我必须比较两个人是否有相同的名称和相同的地址,而不是只保留1个记录.
Table: Data_Excel
Name: P_Name
Address: P_Address
City: P_city
Run Code Online (Sandbox Code Playgroud) 我有以下3个表格,
Data_Excel包含人名,地址,城市和来源;
人员表有名称和ID;
我需要在person_location中插入地址源,地址,城市和ID ......
我使用以下查询:
CREATE SEQUENCE seq
START WITH 6571
MINVALUE 6571
INCREMENT BY 1
CACHE 100
Run Code Online (Sandbox Code Playgroud)
INSERT INTO Person (id,Name,source)
Select (seq.nextval),p_name,source
FROM Data_Excel
WHERE P_Name NOT IN
(SELECT name FROM Person)
GROUP BY P_Name,P_Address,P_city,Source
HAVING count(*) < 2;
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误.我正在使用seq,因为ID是人的主键,但它不是自动递增的.我也试过,但有一个错误:
02287. 00000 - "sequence number not allowed here"
*Cause: The specified sequence umber (CURRVAL or NEXTVAL) is inappropriate
here in the statement.
*Action: emove the sequence number.
Run Code Online (Sandbox Code Playgroud)
问:
arr1[]={1,1,1,2,5,5,6,6,6,6,8,7,9}
Run Code Online (Sandbox Code Playgroud)
答:
values[]={1,2,5,6,7,9}
Run Code Online (Sandbox Code Playgroud)
问:
arr1[]={1,1,1,2,5,5,6,6,6,6,8,7,9,101,1502,1502,1,9}
Run Code Online (Sandbox Code Playgroud)
答:
values[]={1,2,5,6,7,9,101,1502}
Run Code Online (Sandbox Code Playgroud)
这是我尝试但不工作的东西
for(int i=0;i<(index-1);i++) {
if(data[i].age != data[i+1].age) {
c=new list;
c->value=data[i].age;
c->next=NULL; clas++;
if(age_head==NULL) {
p=c; age_head=c;
}
for(c=age_head;c!=NULL,c->next!=NULL;p=c,c=c->next) {
if(data[i].age!=c->value)
found=false;
else
found=true;
}
if((age_head!=NULL)&& (found=false)) {
p->next=c; c->next=NULL;
}
}
}
Run Code Online (Sandbox Code Playgroud)