作者TeemingVoid (TeemingVoid)
看板Database
标题Re: [问题] 有关insert into指令
时间Sun Jul 8 18:00:54 2012
※ 引述《iversonjimmy (Effort)》之铭言:
: 请问各位
: 我在下insert into + select 语法时,
: 出现一个error message为
: "Operand should contain 1 column(s)"
: 可以请问大家这大概是什麽意思吗?
「该运算元只许一个栏位」。
请检查一下您的 select 句子,看看哪里有:
「应该只传回一个栏位,却传回了不只一个栏位的资料」。
举例来说:
use test;
create table lab1 (id int primary key, data varchar(10));
insert into lab1 values (1, 'data A'), (2, 'Data B'), (3, 'Data C');
create table lab2 (id int primary key, data varchar(10));
-- 下列四个叙述是正常的:
insert into lab2 select id, data from lab1 where id <= 2;
insert into lab2 select 4, 'data 4';
insert into lab2 select 5, (select 'data 5');
insert into lab2 select 6, (select 'data' + '123');
-- 下列两个叙述是错的,因为括号中的子查询传回多个栏位,按理应该只有一个栏位:
insert into lab2 select 7, (select 'data', '123');
insert into lab2
select id, data from lab1
where id not in (select id, data from lab2);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.128.22
1F:推 iversonjimmy:你的解释很清楚,很谢谢你,我发现我的问题点了。 07/08 19:23
2F:→ iversonjimmy:我在select那,把要传回的栏位多用了小括弧才导致。 07/08 19:23