我有一个表有两列我会通过选择其他表列数据来填充其中一列,但是如何填充下一列因为我无法使用VALUE。这里的代码通过选择其他表中的另一列插入到一列中,但如何填充第二列
INSERT INTO Numbers(number, val) SELECT LaptopID FROM Laptop WHERE Laptop.Pid = 2
正如你可以看到“val”列留空如何填补这一点?
我有一个表有两列我会通过选择其他表列数据来填充其中一列,但是如何填充下一列因为我无法使用VALUE。这里的代码通过选择其他表中的另一列插入到一列中,但如何填充第二列
INSERT INTO Numbers(number, val) SELECT LaptopID FROM Laptop WHERE Laptop.Pid = 2
正如你可以看到“val”列留空如何填补这一点?
使用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
@ shervin-没问题 – 2012-08-07 16:09:11
我们可以在这里给变量吗? 'INSERT INTO Numbers(@columns)'? – 2016-12-31 10:18:03
@columns:='column_1,column_2' – 2016-12-31 10:18:25
您可以将它作为参数添加到SELECT中。例如:
INSERT INTO Numbers(number, val)
SELECT LaptopID, 'val'
FROM Laptop
WHERE Laptop.Pid = 2
如果没有,需要进入数字对应的值;然后你可以把零或NULL:
Somethign这样---
INSERT INTO numbers (number, val)
SELECT NULL, laptopid
FROM laptop
WHERE laptop.pid = 2
恕我直言,你需要一个INNER与其他表连接,这样的事情:
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
SQLCE不支持多表更新等,所以我用下面的方法
SELECT Laptop.LaptopID, Table2.val FROM Laptop, Table2 WHERE
Laptop.Pid = 2 or where laptop.pid= table2.pid
然后批量插入usin g http://sqlcebulkcopy.codeplex.com/
希望它有帮助:)
这取决于你想放在里面。你想要一个默认值,一个存储在'Laptop'表中的值,根本没有值('NULL'),或者其他的东西? *(还有,SQL的哪个变体?SQL Server,MySQL,Oracle?)* – MatBailie 2012-08-07 15:39:54
您可以做以下操作.. INSERT INTO Numbers(number,val)SELECT LaptopID,1 FROM Laptop WHERE Laptop.Pid = 2 但是你想要什么插入第二栏,这将是问题。 – AJP 2012-08-07 15:41:35
我想用另一个表中存储的值填充下一列。这是sql服务器CE – 2012-08-07 15:42:44