+ -
当前位置:首页 → 问答吧 → 如何写这个sql

如何写这个sql

时间:2011-09-30

来源:互联网

我想要的结果是这样:


sql:
insert into TEACHER(NAME)
select name from student

insert into TEACHER(SEX)
select sex from student

结果却是这样::


如果这样写:

insert into TEACHER(NAME,SEX)
select name from student
union all
select sex from student 报错!!!

因为select name from student
union all
select sex from student的结果是这样的
::


到底该这么写呢啊???????这么写::
insert into TEACHER(NAME,SEX)
select NAME,sex from student
白痴都会
NAME和SEX必须分开!!我自有妙用啊。




作者: xiaoyuaixiaofan   发布时间: 2011-09-30

SQL code
insert into TEACHER(NAME,SEX)
select name,sex from student

作者: cosio   发布时间: 2011-09-30

引用 1 楼 cosio 的回复:
SQL code
insert into TEACHER(NAME,SEX)
select name,sex from student


啊 大哥啊!!你要我命啊!!!!!!!

NAME和SEX必须分开!!我自有妙用啊。

作者: xiaoyuaixiaofan   发布时间: 2011-09-30

NAME,SEX 有不同的业务逻辑 不可能同时插入啊!!!!!!!!!!
55555555555555555

作者: xiaoyuaixiaofan   发布时间: 2011-09-30

图挂了,看不到内容.

作者: dawugui   发布时间: 2011-09-30

SQL code

insert into TEACHER(NAME,SEX)
select name,'' as sex from student
union all
select '' as name,sex from student

作者: hanzs   发布时间: 2011-09-30

SQL code
insert into TEACHER(NAME,SEX)
select name,'' as sex from student
union all
select '' as name,sex from student

作者: cosio   发布时间: 2011-09-30

引用 5 楼 hanzs 的回复:
SQL code

insert into TEACHER(NAME,SEX)
select name,'' as sex from student
union all
select '' as name,sex from student



作者: xiaoyuaixiaofan   发布时间: 2011-09-30

你这图片挂了~~~ 

现在什么情况,描述下

作者: hanzs   发布时间: 2011-09-30

引用 8 楼 hanzs 的回复:
你这图片挂了~~~

现在什么情况,描述下


结果就是这样
name sex
张三  
李四
王五
  男
  女
  男

悲剧!!!!!!!!!!!!!!!啊

作者: xiaoyuaixiaofan   发布时间: 2011-09-30

批量插入 insert to 一个表 这个表中的多个字段来源于 表B 的一个字段 不过是逻辑计算不同

所以归结起来就是insert into 后多个select 怎么写,每个select对应一个字段???

;逻辑不同 来源于同一字段 不可能同时插入。
必须要多个select。。555555

作者: xiaoyuaixiaofan   发布时间: 2011-09-30

假设楼主的目标表为TT,数据来源表有两个TA和TB,想用TA的NAME加上TB的SEX去生成TT中的记录。
那么你的TA和TB应当有对应关系才可以,比如有关联列ID,那么SQL的写法是:
SQL code
INSERT INTO TT (NAME, SEX)
SELECT TA.NAME,TB.SEX FROM TA,TB WHERE TA.ID = TB.ID;

作者: xiaobn_cn   发布时间: 2011-09-30

引用 10 楼 xiaoyuaixiaofan 的回复:
批量插入 insert to 一个表 这个表中的多个字段来源于 表B 的一个字段 不过是逻辑计算不同

所以归结起来就是insert into 后多个select 怎么写,每个select对应一个字段???

;逻辑不同 来源于同一字段 不可能同时插入。
必须要多个select。。555555


SQL code
INSERT A (NAME,SEX)
SELECT SUBSTR(B.S,1,2),SUBSTR(B.S,3,2) FROM B;

作者: xiaobn_cn   发布时间: 2011-09-30