2012-08-07 17 views
9

Diğer sütun sütunlarını seçerek sütunlardan birini dolduracağım iki sütunu olan bir tablo var ancak sonraki sütunu nasıl doldurabilirim çünkü VALUE kullanamıyorum. İşte kod siz "val" sütunu ben o doldurabilir kadar boş bıraktı görebileceğiniz gibiBaşka bir sütunda başka bir sütun seçerek bir sütuna ekleyin, ancak ikinci sütunu nasıl doldurabilirsiniz?

INSERT INTO Numbers(number, val) SELECT LaptopID FROM Laptop WHERE Laptop.Pid = 2 

var?

+0

umuyoruz. Varsayılan bir değer mi, 'Laptop' tablosunda saklanan bir değer mi, hiç değer mi (NULL değil) mi yoksa başka bir şey mi istiyorsunuz? * (Ayrıca, hangi SQL? SQL Server, MySQL, Oracle varyantı?) * – MatBailie

+0

u aşağıdakileri yapabilirsiniz .. INSERT INTO Numaraları (sayı, val) SELECT LaptopID, 1 Laptop'DAN BEKLEYİN Laptop.Pid = 2 ama ne istiyorsunuz Sorulacak ikinci sütuna eklemek için. – AJP

+0

Sonraki sütunu başka bir tabloda da kayıtlı değerle doldurmak istiyorum. Bu sql sunucusu CE –

cevap

19

Kullanım NULL sütun izin veriyorsa:

INSERT INTO Numbers(number, val) 
SELECT LaptopID, NULL 
FROM Laptop WHERE Laptop.Pid = 2 

Ya da size amaçlanan (eklenmiş) değeri kullanın.

Eğer numara:

INSERT INTO Numbers(number, val) 
SELECT LaptopID, 2 
FROM Laptop WHERE Laptop.Pid = 2 

veya eğer metin:

INSERT INTO Numbers(number, val) 
SELECT LaptopID, 'val' 
FROM Laptop WHERE Laptop.Pid = 2 
+0

@ shervin- Sorun yok –

+0

Burada değişken yapabilir miyiz? INSERT INTO Numaraları (@columns) '?? –

+0

@columns: = 'column_1, column_2' –

1

Bunu SELECT'te bir argüman olarak eklersiniz. Örneğin:

INSERT INTO Numbers(number, val) 
    SELECT LaptopID, 'val' 
    FROM Laptop 
    WHERE Laptop.Pid = 2 
2

numaranın altında olması gerekiyor karşılık gelen bir değer yoksa; o zaman sadece sıfır veya NULL koyabilirsiniz:

INSERT INTO Numbers(number, val) SELECT L.LaptopID, OT.OTHER_COLUMN FROM Laptop L 
INNER JOIN OTHER_TABLE OT ON L.SOME_COLUMN = OT.ANOTHER_SOME_COLUMN 
WHERE Laptop.Pid = 2 
1

IMHO, sen bir INNER diğer tabloyla JOIN böyle bir şey gerekiyor vb Çoklu tablo güncelle desteklemez, bu yüzden, aşağıdaki yöntem kullanılır

SELECT Laptop.LaptopID, Table2.val FROM Laptop, Table2 WHERE 
Laptop.Pid = 2 or where laptop.pid= table2.pid 

sonra toplu uç Bağın

gr http://sqlcebulkcopy.codeplex.com/ yardımcı olur :) seni içine koymak istediğinize bağlıdır

1

SQLCE: Böyle

somethign ---

INSERT INTO numbers (number, val) 
SELECT NULL, laptopid 
    FROM laptop 
WHERE laptop.pid = 2 
İlgili konular