Xav*_*avi 3 sql t-sql sql-server sql-server-2008
我想在条件满足时将值插入表的1列.
注意:该表已包含所有列的数据,但是1表示为空.我想根据WHERE子句将值插入此1列.
我有这个问题:
INSERT INTO <TABLE_NAME>
(COLUMN_NAME)
(VALUE)
WHERE <CONDITION>
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
WHERE关键字附近的语法不正确
我可以使用UPDATE执行此操作:
UPDATE <TABLE_NAME>
SET <COL_NAME>
WHERE <CONDITION>
Run Code Online (Sandbox Code Playgroud)
但是想知道为什么INSERT查询失败了.任何建议表示赞赏.
为了在行已填充时将值添加到一列中,您需要使用更新语句。
如果需要插入带有 where 子句的新行,则需要使用 insert into select 语句:
INSERT INTO <table> (<columns>)
SELECT <columns>
FROM <table>
WHERE <condition>;
Run Code Online (Sandbox Code Playgroud)
据我了解您的问题,您已经有一行中的数据,并且该行中的一列没有值,因此您希望将值添加到该列.
这是更新现有行的方案,而不是插入新行.当数据已经存在并且您想要修改记录时,必须使用UPDATE子句.如果要在表中插入新行,请选择"插入".
因此,在您当前的场景中,Update Clause是您的Where子句的朋友,因为您想要修改记录的子集而不是全部.
UPDATE <TABLE_NAME>
SET <COL_NAME>
WHERE <CONDITION>
Run Code Online (Sandbox Code Playgroud)
根据任何RDBMS语法,INSERT子句没有任何Where子句(我认为).Insert是条件少sql查询,而SELECT,UPDATE,DELETE都是条件命令,你可以在以后的所有中添加Where子句.
小智 1
Insert语句将插入一条新记录。您不能将 where 子句应用于要插入的记录。
where 子句可用于更新所需的行。更新 SET = 其中 .
但 insert 不会有 where 子句。希望这能回答您的问题
| 归档时间: |
|
| 查看次数: |
47183 次 |
| 最近记录: |