通过选择其他表中的另一列插入一列,但如何填充第二列

时间:2012-08-07 15:38:42

标签: sql sql-server-ce

我有一个包含两列的表格,我可以通过选择其他表格列数据来填充其中一列,但如何填写下一列,因为我无法使用VALUE。这是代码

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

你可以看到" val"列留空了如何填写?

6 个答案:

答案 0 :(得分:26)

如果列允许,请使用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

答案 1 :(得分:2)

如果您没有需要进入数字的相应值;然后你可以把零或NULL:

有点像这样---

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

答案 2 :(得分:1)

您可以在SELECT上将其添加为参数。例如:

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

答案 3 :(得分: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 

答案 4 :(得分:1)

SQLCE不支持多表更新等,所以我使用了以下方法

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

然后使用http://sqlcebulkcopy.codeplex.com/

批量插入

希望它有所帮助:)

答案 5 :(得分:0)

INSERT INTO answer(userans) VALUES(OptionA) Select username From answer WHERE username= 'Name';

我想参考同一张表中的另一列在列中添加数据。