19

我有一个有两列的表,我会通过选择其他表列数据来填充其中一列,但是我如何填充下一列,因为我不能使用 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

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 回答
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 回答
0
INSERT INTO answer(userans) VALUES(OptionA) Select username From answer WHERE username= 'Name';

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

于 2018-06-22T04:57:30.577 回答