Re: [問題] 有關insert into指令
※ 引述《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
推
07/08 19:23, , 1F
07/08 19:23, 1F
→
07/08 19:23, , 2F
07/08 19:23, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):