将一张表的某个字段同时插入另一张表的多个字段的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都不能为空
展开
 我来答
baiynijecym
2012-12-12 · TA获得超过1841个赞
知道大有可为答主
回答量:1411
采纳率:66%
帮助的人:1150万
展开全部
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 值
追问
B表的type和state都不能为空,所以我想看看能不能用一条sql解决
追答
不能为空的话放什麼值呢?看我的补充回答。
cy_paul
2012-12-12 · TA获得超过821个赞
知道小有建树答主
回答量:769
采纳率:100%
帮助的人:237万
展开全部
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=' 在库'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qsc800528
2012-12-12 · TA获得超过2974个赞
知道大有可为答主
回答量:1383
采纳率:0%
帮助的人:1746万
展开全部
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='在库'
追问
能不能用一条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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式