2012-08-07 6 views
9

私は2つの列を持つテーブルを持っています。私はVALUEを使うことができません。コードは次のとおりです他のテーブルの別の列を選択して1つの列に挿入しますが、2番目の列を入力する方法

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

「val」列が空白のままになっていますが、どのように記入したらいいですか?

+0

それはあなたが入れたいものによって異なります。デフォルト値、 'Laptop'テーブルに格納された値、値なし(' NULL')、または何か他のものを使いますか? *(SQL、SQL、MySQL、Oracleのどちらの変種ですか?)* – MatBailie

+0

あなたは以下のことを行うことができます。INSERT INTO数値(数値、値)LaptopID、1 Laptop Laptop.Pid = 2 2番目の列に質問が挿入されます。 – AJP

+0

次の列に別のテーブルにも値が格納されているとします。これはSQL Server CE –

答えて

19

使用NULL列がそれを許可する場合:

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

それともたい意図(ハードコード)値を使用します。

数の場合:

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

またはテキストの場合:

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

@ shervin-問題ありません –

+0

ここに変数を与えることができますか? 'INSERT INTO Numbers(@columns)' ?? –

+0

@columns:= 'column_1、column_2' –

1

SELECTの引数として追加します。たとえば、次のように

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

あなたは数に行く必要が対応する値を持っていない場合。その後、あなただけのゼロまたはNULLに置くことができます。

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

私見を、あなたは、INNERが、他のテーブルとJOINをこのようなものが必要複数のテーブルの更新などをサポートしていないので、以下のメソッドを使用しました。

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

g http://sqlcebulkcopy.codeplex.com/

助けて欲しいと思っています。

1

SQLCE:このような

Somethign ---

INSERT INTO numbers (number, val) 
SELECT NULL, laptopid 
    FROM laptop 
WHERE laptop.pid = 2 
関連する問題