| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2300 人关注过本帖
标题:删除另表字符包含问题
取消只看楼主 加入收藏
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
结帖率:73.97%
收藏
已结贴  问题点数:20 回复次数:9 
删除另表字符包含问题
一、删除包含1个字符的记录
create cursor b1 (m c(6))
insert into b1 values ("152")
insert into b1 values ("146")
insert into b1 values ("543")
insert into b1 values ("1654")
insert into b1 values ("54136")

create cursor b2 (m c(2))
insert into b2 values ("3")
insert into b2 values ("2")
在b1中删除包含有b2字符的记录
如"152"中含有"2",删除
"543"中含有"3",删除

二、删除包含2个字符的记录

create cursor b1 (m c(6))
insert into b1 values ("152")
insert into b1 values ("146")
insert into b1 values ("543")
insert into b1 values ("1654")
insert into b1 values ("54136")

create cursor b2 (m1 c(1),m2 c(1))
insert into b2 values ("1","2")
insert into b2 values ("3","1")

如"152"含有"1"和"2"删除
"54136"含有"1"和"3"删除

谢谢!

搜索更多相关主题的帖子: 包含 删除 into values insert 
2020-09-07 14:55
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
谢谢版主!!!
2020-09-07 17:20
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
回复 3楼 sdta
版主:
在DELETE b1 FROM b2 WHERE ALLTRIM(b2.m) $ b1.m语句中,如果删除不包含b2.m字符,应怎么写?

如"152"含有"2"不删除
"54136"含有"3"不删除

[此贴子已经被作者于2020-9-7 18:45编辑过]

2020-09-07 18:09
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
回复 6楼 sdta
我用 DELETE b1 FROM b2 WHERE NOT b2.m1 $ b1.m AND b2.m2 $ b1.m
结果全部删除了,
用 DELETE FOR NOT b2.m1 $ b1.m AND b2.m2 $ b1.m
也是全部删除了
SQL语句未学过,惭愧。


[此贴子已经被作者于2020-9-7 18:43编辑过]

2020-09-07 18:34
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用sdta在2020-9-8 10:03:26的发言:


1 insert into b1 values ("152")
包含2,不包含3,所以本条记录被删除
2 insert into b1 values ("146")
同时不包含2、3,所以本条记录被删除
3 insert into b1 values ("543")
包含3,不包含2,所以本条记录被删除
4 insert into b1 values ("1654")
同时不包含2、3,所以本条记录被删除
5 insert into b1 values ("54136")
包含3,不包含2,所以本条记录被删除

通过上面分析,5条记录全部被删除

create cursor b2 (m c(2))
insert into b2 values ("3")
insert into b2 values ("2")

辛苦版主老师,是我没把问题说清楚,条件是不包含“3”或“2”的记录删除。麻烦了。
结果应是“146”和“1654”两条记录被删除。

[此贴子已经被作者于2020-9-8 13:08编辑过]

2020-09-08 10:25
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
回复 10楼 sdta
辛苦了,谢谢!
2020-09-08 10:45
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2020-9-8 12:11:47的发言:

b1每条记录的m包含(或不包含)b2所有记录的m(或m1,m2)


create cursor b1 (m c(6))
insert into b1 values ("152")
insert into b1 values ("146")
insert into b1 values ("543")
insert into b1 values ("1654")
insert into b1 values ("54136")

create cursor b2 (m c(2))
insert into b2 values ("3")
insert into b2 values ("2")
在b1中删除不包含有b2所有记录的字符
如"152"中含有"2",不删除
"543"中含有"3",不删除
"146"不含b2所有记录,删除
最后结果为:"152","543","54136"的记录
删除"146","1654"的记录
2020-09-08 13:08
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2020-9-8 17:14:53的发言:

是这样的话,参考2、3楼应该好理解,也可以不用DELETE,直接取出所要的数据

如何取出不包含b2字符的数据?请指点!
因为b1和b2的记录都多
b1有近10万多条数据

[此贴子已经被作者于2020-9-8 17:54编辑过]

2020-09-08 17:49
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
回复 16楼 吹水佬
谢谢两位版主 !!
2020-09-09 15:51
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
其实也可以这样操作:
复制b1为b3
用2楼的办法删除包含相同字符的记录
再在b3中删除上面保留的记录
语句也只有两名,也避免了b1因数据量大编程费时间的问题.
再次感谢两位老师!!!
2020-09-09 20:23
快速回复:删除另表字符包含问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044972 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved