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

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

enter image description here

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

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

1
задан Yogesh Sharma 19 March 2019 в 13:19
поделиться

3 ответа

Создайте столбец «Агент и поставщик» в типе данных 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

0
ответ дан Zaynul Abadin Tuhin 19 March 2019 в 13:19
поделиться

Используйте 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
ответ дан fa06 19 March 2019 в 13:19
поделиться

Вы должны использовать функцию 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.

0
ответ дан Mark Cooper 19 March 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: