假设楼主的意思是: create table tb1(零件编号 int,机型 nvarchar(10)) insert into tb1 select 15,'惠普210打印机' create table tb2(通用编号 varchar(20),通用机型 nvarchar(10)) insert into tb2 select '1,12,15,23','打印机' go select a.机型,b.通用机型 from tb1 a inner join tb2 b on charindex(','+ltrim(a.零件编号)+',',','+b.通用编号+',')>0 /* 机型 通用机型 ---------- ---------- 惠普210打印机 打印机(1 行受影响)*/ go drop table tb1,tb2
表A的字段为:零件编号,机型
表B的字段为:通用编号,通用机型
我想实现:
当表B的通用编号里包含了表A的零件编号,那表A的机型就获取表B通用机型的值
create table tb1(零件编号 int,机型 nvarchar(10))
insert into tb1 select 15,'惠普210打印机'
create table tb2(通用编号 varchar(20),通用机型 nvarchar(10))
insert into tb2 select '1,12,15,23','打印机'
go
select a.机型,b.通用机型
from tb1 a inner join tb2 b
on charindex(','+ltrim(a.零件编号)+',',','+b.通用编号+',')>0
/*
机型 通用机型
---------- ----------
惠普210打印机 打印机(1 行受影响)*/
go
drop table tb1,tb2
楼主的描述很是模糊啊,没有数据显示,叫人怎么写。既要理解lz的意思,又要考虑sql语句怎么写,多麻烦啊。如果理解错了呢。
如果我想使用update语句直接更新呢?那where语句应该怎么写?谢谢!
如:
create table tb1(零件编号 int,机型 nvarchar(10))
insert into tb1 select 15,'惠普210打印机'
create table tb2(通用编号 varchar(20),通用机型 nvarchar(10))
insert into tb2 select '1,12,15,23','打印机'
我想实现:
update tb1
set tb1.机型=tb2.通用机型
from tb2
where tb2.通用编号 包含 tb1.零件编号 (这句怎么写?)