表A
ID ProdName
1 宝马
2 宝马、奔驰、吉利
3 奥迪、奔腾
4 雪铁龙表B
ID ProdName2(此字段记录为单个项目)
1 宝马
2 奔驰
3 宝马
4 吉利——————————————————————
现在要取表A记录,表B中出现过的产品,全部不显示。
应该读出来的记录是
3 奥迪、奔腾
4 雪铁龙
ID ProdName
1 宝马
2 宝马、奔驰、吉利
3 奥迪、奔腾
4 雪铁龙表B
ID ProdName2(此字段记录为单个项目)
1 宝马
2 奔驰
3 宝马
4 吉利——————————————————————
现在要取表A记录,表B中出现过的产品,全部不显示。
应该读出来的记录是
3 奥迪、奔腾
4 雪铁龙
解决方案 »
- sql语句如何从oracle 转到 sql server 数据库中?
- shell
- 求一个sql语句,解决我的疑问,急,谢谢
- msde建的数据库,附加到个人版上,是否还有2G大小的限制
- SQL2005 企业管理器中如何复制视图和存储过程
- 有关SQL代理问题???
- 怎样防止删除主键行
- SQL Server desktop版如何自启动------在线等候
- 使用_SCREEN.PICTURE定义窗口图片如何实现自行'变比填充'
- 新学求助:C#连接数据库的窗体调试出现问题:未处理SQLCEEXCEPTION,无法加载与 8080 版本的 ADO.NET 提供程序相对应的 SQL Serv
- 不复杂的删除操作我都不知道,求助
- datetime转carchar 问题
from A cross join B
where charindex(b.prodname2,a.prodname)=0
go
-->生成表A
if object_id('A') is not null
drop table A
Go
Create table A([ID] smallint,[ProdName] nvarchar(8))
Insert into A
Select N'1',N'宝马'
Union all Select N'2',N'宝马、奔驰、吉利'
Union all Select N'3',N'奥迪、奔腾'
Union all Select N'4',N'雪铁龙'
-->生成表B
if object_id('B') is not null
drop table B
Go
Create table B([ID] smallint,[ProdName2] nvarchar(2))
Insert into B
Select N'1',N'宝马'
Union all Select N'2',N'奔驰'
Union all Select N'3',N'宝马'
Union all Select N'4',N'吉利'
SELECT * FROM A
WHERE NOT EXISTS(SELECT 1 FROM B AS x WHERE CHARINDEX(x.ProdName2,a.ProdName)>0)
/*
ID ProdName
------ --------
3 奥迪、奔腾
4 雪铁龙
*/