2009-09-30 3 views
8

테이블의 다른 열이 null이 아닌 경우 true가 될 계산 된 비트 열을 사용하려고합니다. 이것에 대한 올바른 공식은 무엇입니까?Sql Server 계산 된 열 수식 구문

HasLabel = computed column (bit) 
Label = varchar NULL 

다음 공식은 유효하지 않습니다. - 내가 뭘 놓친거야?
HasLabel 수식 = Label IS NOT NULL

답변

26

계산 된 열은 값을 반환해야하지만 비교 만하면됩니다. 대신이 시도 :

case when label is null then 0 else 1 end 

SQL 서버 그러나 nullable이 아닌 열로 이것을 이해하지 않습니다. 이를 처리하기 위해 계산을 다음과 같이 변경하십시오 :

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

또는'ISNULL (경우 레이블이 NULL 인 경우 0, 끝, 1)'이 조금 더 짧습니다. –

+0

@MartinSmith 그리고 이것은 조금 더 짧습니다 :'isnull (label> 1, 1 end, 0의 경우)' – RedFilter