Как обновить столбцы SQL с данными на основе истинного или ложного в другом столбце той же таблицы? - PullRequest
1 голос
/ 19 марта 2019

Пожалуйста, смотрите прикрепленное изображение

enter image description here

Я бы хотел обновить Supplier & Agent Столбцы либо true, либо false, основываясь на информации в столбце Supplier_Agent. Как бы я это сделал?

Кроме того, некоторые записи не имеют никакой информации в столбце Supplier_Agent, поэтому для них оба столбца Supplier & Agent будут иметь значение FALSE.

Ответы [ 3 ]

3 голосов
/ 19 марта 2019

укажите столбец агента и поставщика в bit типе данных, затем обновите

 update t
  set supplier=case when Supplier_Agent='Supplier'  then 1 else 0 end,
   agent =case when Supplier_Agent='Agent'  then 1 else 0 end

На сервере sql отсутствует логический тип данных, поэтому 0 означает false, а 1 означает true

2 голосов
/ 19 марта 2019

Использование case when

update dbo.SuppliersNPD
set supplier= case when supplier_aggent='supplier' then 1 else 0 end,
agent= case when supplier_aggent='agent' then 1 else 0 end
0 голосов
/ 19 марта 2019

Вы должны использовать функцию case when, чтобы вы могли установить значение, проверяя определенное условие.

update SNPD
set SNPD.supplier= case when SNPD.Supplier_Agent='Supplier' then 1 else 0 
end,
SNPD.Agent= case when SNPD.Supplier_Agent='Agent' then 1 else 0 end 
FROM SuppliersNPD as SNPD

Я также рекомендую вам использовать перечисление вместо «поставщик» и «агент» для определения типа поставщика. Например, вы могли бы создать столбец с именем Type и использовать код 100 для поставщиков и 200 для агентов. Это кажется более сложным, но облегчает ведение таблицы и часто используется в программном обеспечении ERP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...