Заменить текущую таблицу оператором объединения - PullRequest
0 голосов
/ 01 марта 2019

У меня есть таблица с именем innerjoined:

enter image description here

В этой текущей таблице есть поля, которые являются пустыми.И у меня есть код, который удаляет строки с пустым значением.

`SELECT productcode, Brand, product, size FROM innerjoined WHERE
 COALESCE(productcode, '') <> '' AND
 COALESCE(Brand, '') <> '' AND
 COALESCE(product, '') <> '' AND
 COALESCE(size, '') <> ''`

Таким образом, это заканчивается так:

enter image description here

Мой вопрос: как мне обновить текущую таблицу, не создавая новую на основе этой формулы?Я пробовал следующее:

`update innerjoined(SELECT productcode, Brand, product, size FROM innerjoined WHERE
COALESCE(productcode, '') <> '' AND
COALESCE(Brand, '') <> '' AND
COALESCE(product, '') <> '' AND
COALESCE(size, '') <> '')`

1 Ответ

0 голосов
/ 01 марта 2019

Во-первых, я просто не понимаю, почему вы не используете:

SELECT productcode, Brand, product, size
FROM innerjoined
WHERE productcode <> '' AND
      Brand <> '' AND
      product <> '' AND
      size <> '';

Это проще и делает то же самое.

Во-вторых, вы, кажется, хотите delete:

delete i from innerjoined i
    where productcode = '' or productcode is null or
          brand = '' or brand is null or
          product = '' or product is null or
          size = '' or size is null;

Здесь - это скрипта db <>, иллюстрирующая, что весь этот код работает, как с пустыми строками, так и с NULL.

...