2009-09-30 2 views
8

Я хочу использовать вычисленный столбец бит, который будет истинным, если другой столбец в таблице не равен NULL. Какая правильная формула для этого?Синтаксис формулы вычисляемого столбчатого столбца Sql

HasLabel = computed column (bit) 
Label = varchar NULL 

Следующая формула не подтверждается. - Что мне не хватает?
Формула для HasLabel = Label IS NOT NULL

ответ

26

Вычисленный столбец должен возвращать значение, тогда как вы просто проводите сравнение. Попробуйте это вместо:

case when label is null then 0 else 1 end 

SQL Server не понимает это как столбцы, отличные от NULLable. Чтобы справиться с этим, изменить вычисление на:

isnull(case when label IS NULL then 0 else 1 end, 0) 
+1

или 'ISNULL (случай, когда метка IS NULL THEN 0 END, 1)' немного короче. –

+0

@MartinSmith И это еще немного короче: 'isnull (case when label> 1 then 1 end, 0)' – RedFilter

Смежные вопросы