首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQL中执行语句后所有数据为NULL

在SQL中执行语句后所有数据为NULL
EN

Stack Overflow用户
提问于 2019-05-21 01:08:38
回答 1查看 81关注 0票数 0

我使用的语句:

代码语言:javascript
复制
INSERT INTO table (addr2, addr3) 
    SELECT City, State 
    FROM table

我试着倒车,但我不知道怎么倒车。

我想拿回我的数据。所有列和字段现在都是null

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 02:09:33

你说过:

...基本上只是复制来自城市和州的所有数据,并将数据放入addr2和addr3.field中

如果要在表的所有行中将所有现有addr2替换为city,将addr3替换为state,则需要UPDATE,而不是INSERT

代码语言:javascript
复制
UPDATE foo SET addr2 = city, addr3 = state;

..。其中foo是表的名称。

请注意,这将替换您以前为addr2addr3设置的任何值,因此请谨慎使用。如果只想在addr2addr3NULL的地方替换它们,您可以这样做:

代码语言:javascript
复制
UPDATE foo SET addr2 = city WHERE addr2 IS NULL;
UPDATE foo SET addr3 = state WHERE addr3 IS NULL;

或者,也许:

代码语言:javascript
复制
UPDATE foo SET addr2 = city, addr3 = state WHERE addr2 IS NULL AND addr3 IS NULL;
UPDATE foo SET addr3 = CONCAT(city, ', ', state) WHERE addr2 IS NOT NULL AND addr3 IS NULL;

或者,根据您正在使用的SQL引擎,您也可以使用ISNULL()

代码语言:javascript
复制
UPDATE foo SET addr2 = ISNULL(addr2, city), addr3 = ISNULL(addr3, state);

因此,删除刚刚插入的行,然后根据需要对其余行执行UPDATE操作。为了安全起见,您可能需要先备份数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56225386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档