Bagaimana cara memasukkan nilai ke dalam tabel, menggunakan subkueri dengan lebih dari satu hasil?

97

Saya sangat menghargai bantuan Anda.

Mungkin ini masalah yang cukup sederhana untuk dipecahkan - tapi bukan saya .. ;-)

Saya memiliki dua tabel di SQL Server:

  1. artikel
  2. harga

Sekarang saya ingin memilih satu set id tertentu dan memasukkan beberapa entri ke dalam tabel harga dengan ID tersebut.

mis. (SQL salah dan tidak berfungsi)

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);

Kesalahan SQL -> subkueri memiliki lebih dari 1 nilai

terimakasih atas bantuannya

Futuretec
sumber
5
Wow! Begitu banyak jawaban yang benar semua pada 13 Maret '12 pukul 21:18 (petunjuk: Anda dapat mengarahkan kursor ke atas cap waktu untuk mendapatkan detik)
Rohmer

Jawaban:

150

Kamu ingin:

insert into prices (group, id, price)
select 
    7, articleId, 1.50
from article where name like 'ABC%';

di mana Anda hanya melakukan hardcode pada bidang konstan.

Mike Ryan
sumber
INSERT INTO iden_course(Cse_M_ID, Cse_M_Name, Cse_M_ShName, Cse_M_TotSem, Cse_M_CreatedDate) VALUES ( 'ID', 'BJF', 'BJfg', '4', Sekarang ()) pilih max (Cse_M_ID) sebagai ID dari iden_course cara menambahkan dalam query ini
SANDEEP
24

Coba ini:

INSERT INTO prices (
    group, 
    id,
    price
) 
SELECT
    7,
    articleId,
    1.50
FROM
    article 
WHERE 
    name LIKE 'ABC%';
Stefan H.
sumber
12
INSERT INTO prices (group, id, price)
  SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%'
Terkel
sumber
12

Jika Anda memasukkan satu catatan ke tabel Anda, Anda bisa melakukannya

INSERT INTO yourTable 
VALUES(value1, value2)

Tapi karena Anda ingin memasukkan lebih dari satu record, Anda bisa menggunakan a SELECT FROMdi pernyataan SQL Anda.

jadi Anda akan ingin melakukan ini:

INSERT INTO prices (group, id, price) 
SELECT 7, articleId, 1.50
from article 
WHERE name LIKE 'ABC%'
Taryn
sumber
3

sub kueri terlihat seperti

 insert into table_name (col1,col2,....) values (select col1,col2,... FROM table_2 ...)

berharap bantuan ini

Muhannad A. Alhariri
sumber
1
INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50
FROM article where name like 'ABC%';
Teja
sumber