将一张表的某个字段同时插入另一张表的多个字段的sql怎么写
我现在有两张表:A表:idddCoding(varchar)ddName(varchar)B表:idtypestateB表的type和state两个字段都关联A表的id,...
我现在有两张表:
A表:
id ddCoding(varchar) ddName(varchar)
B表:
id type state
B表的type和state两个字段都关联A表的id,
现在要将A表中的id字段的值分别插入B表的type和state字段,
条件是:
当A表的ddCoding='01' and ddName='交换机'时该条记录的id为B表type字段的值;
当A表的ddCoding='02' and ddName='在库'时该条记录的id为B表state字段的值;
求sql语句怎么写,求高手帮忙
用一条sql解决,而且B表的type和state都不能为空 展开
A表:
id ddCoding(varchar) ddName(varchar)
B表:
id type state
B表的type和state两个字段都关联A表的id,
现在要将A表中的id字段的值分别插入B表的type和state字段,
条件是:
当A表的ddCoding='01' and ddName='交换机'时该条记录的id为B表type字段的值;
当A表的ddCoding='02' and ddName='在库'时该条记录的id为B表state字段的值;
求sql语句怎么写,求高手帮忙
用一条sql解决,而且B表的type和state都不能为空 展开
3个回答
展开全部
type 和state 可以为空吗?
就是说当符合第一个条件时将A的ID插入到B表的type,此时B表的state的值是多少?
就是说当符合第二个条件时将A的ID插入到B表的state,此时B表的type的值是多少?
如果可以为空的话可以这样:
insert into B(type,state)
select
case when ddCoding='01' and ddName='交换机' then id end,
case when ddCoding='02' and ddName='在库' then id end
from A
如果不为空的话可在end 前加入else 值
就是说当符合第一个条件时将A的ID插入到B表的type,此时B表的state的值是多少?
就是说当符合第二个条件时将A的ID插入到B表的state,此时B表的type的值是多少?
如果可以为空的话可以这样:
insert into B(type,state)
select
case when ddCoding='01' and ddName='交换机' then id end,
case when ddCoding='02' and ddName='在库' then id end
from A
如果不为空的话可在end 前加入else 值
追问
B表的type和state都不能为空,所以我想看看能不能用一条sql解决
追答
不能为空的话放什麼值呢?看我的补充回答。
展开全部
insert into B (type,state)
select id,id from A where A.ddCoding='01' and ddName='交换机'
insert into B(type,state)
select id,id from A where A.ddCoding='02' and ddName=' 在库'
select id,id from A where A.ddCoding='01' and ddName='交换机'
insert into B(type,state)
select id,id from A where A.ddCoding='02' and ddName=' 在库'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
INSERT INTO B(TYPE) SELECT ID FROM A WHERE DDCODING='01' AND DDNAME='交换机'
INSERT INTO B(STATE) SELECT ID FROM A WHERE DDCODING='02' AND DDNAME='在库'
INSERT INTO B(STATE) SELECT ID FROM A WHERE DDCODING='02' AND DDNAME='在库'
追问
能不能用一条sql解决
追答
INSERT INTO B(TYPE,STATE) SELECT CASE WHEN (DDCODING='01'AND DDNAME='交换机')
THEN ID ELSE '' END AS 'TYPE',
CASE WHEN ( DDCODING='02' AND DDNAME='在库') THEN ID ELSE '' END AS 'STATE'FROM A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询