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


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.


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%';

12
INSERT INTO prices (group, id, price)
  SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%'

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%'

3

sub kueri terlihat seperti

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

berharap bantuan ini


1
INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50
FROM article where name like 'ABC%';
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.