Все данные NULL после выполнения оператора в SQL - PullRequest
0 голосов
/ 20 мая 2019

Заявление, которое я использовал:

INSERT INTO table (addr2, addr3) 
    SELECT City, State 
    FROM table

Я пытался повернуть вспять, но я не знаю, как.

Я хочу вернуть свои данные. Все столбцы и поля теперь null.

1 Ответ

0 голосов
/ 20 мая 2019

Вы сказали:

... в основном, просто копируя все данные из города и штата и помещая данные в поля addr2 и addr3.fields

Если вы хотите заменить все существующие addr2 на city и addr3 на state во всех строках таблицы, вам нужно UPDATE, а не INSERT:

UPDATE foo SET addr2 = city, addr3 = state;

... где foo - имя таблицы.

Обратите внимание, что это заменит любые значения, которые вы ранее имели для addr2 и addr3, поэтому используйте это осторожно. Если вы хотите заменить addr2 и addr3 там, где они NULL, вы можете сделать:

UPDATE foo SET addr2 = city WHERE addr2 IS NULL;
UPDATE foo SET addr3 = state WHERE addr3 IS NULL;

Или, возможно:

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():

UPDATE foo SET addr2 = ISNULL(addr2, city), addr3 = ISNULL(addr3, state);

Итак, удалите только что вставленные строки, а затем UPDATE оставшиеся строки, если необходимо. Вы можете сначала сделать резервную копию ваших данных, просто чтобы быть в безопасности.

...