2009-09-30 25 views
8

Tôi muốn sử dụng cột bit được tính toán sẽ đúng nếu cột khác trong bảng không phải là rỗng. Công thức chính xác cho điều này là gì?Cú pháp Công thức Cột được Tính toán của Máy chủ Sql

HasLabel = computed column (bit) 
Label = varchar NULL 

Công thức sau đây không xác thực. - Tôi đang thiếu gì?
Công thức cho HasLabel = Label IS NOT NULL

Trả lời

26

Cột được tính phải trả lại giá trị, trong khi bạn chỉ đang so sánh. Hãy thử thay vào đó:

case when label is null then 0 else 1 end 

SQL Server sẽ không hiểu điều này là cột không thể NULL. Để xử lý điều đó, hãy thay đổi tính toán thành:

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

Hoặc 'ISNULL (CASE WHEN IS IS NULL THEN 0 END, 1)' ngắn hơn một chút. –

+0

@MartinSmith Và cái này ngắn hơn một chút: 'isnull (trường hợp khi nhãn> 1 rồi 1 kết thúc, 0)' – RedFilter

Các vấn đề liên quan