19

2つの列を持つテーブルがあり、他のテーブルの列データを選択して1つの列に入力しますが、次の列に入力するにはどうすればよいですか。VALUEを使用できません。これがコードです

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

「val」列が空のままになっているのがわかるように、どうすればそれを埋めることができますか?

4

6 に答える 6

30

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
于 2012-08-07T15:41:36.947 に答える
2

数値に入れる必要のある対応する値がない場合。次に、ゼロまたはNULLを入力できます。

このような何か---

INSERT INTO numbers (number, val)
SELECT NULL, laptopid
  FROM laptop
 WHERE laptop.pid = 2
于 2012-08-07T15:43:38.560 に答える
1

SELECTの引数として追加します。例えば:

INSERT INTO Numbers(number, val)
    SELECT LaptopID, 'val'
    FROM Laptop
    WHERE Laptop.Pid = 2 
于 2012-08-07T15:41:15.873 に答える
1

私見、あなたは他のテーブルとの内部結合が必要です、このようなもの:

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 
于 2012-08-07T15:51:09.077 に答える
1

SQLCEは複数テーブルの更新などをサポートしていないため、次の方法を使用しました

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

次に、 http: //sqlcebulkcopy.codeplex.com/を使用して一括挿入します

それが役に立てば幸い :)

于 2012-08-08T15:03:32.773 に答える
0
INSERT INTO answer(userans) VALUES(OptionA) Select username From answer WHERE username= 'Name';

同じテーブル内の別の列を参照して、ある列にデータを追加したいと思います。

于 2018-06-22T04:57:30.577 に答える