Re: [問題] 有關insert into指令

看板Database作者 (TeemingVoid)時間13年前 (2012/07/08 18:00), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
我在select那,把要傳回的欄位多用了小括弧才導致。
07/08 19:23, 2F
文章代碼(AID): #1F-LfP6T (Database)
文章代碼(AID): #1F-LfP6T (Database)