我想使用一个计算列,如果表中的另一列不为空,它将为true。这个正确的公式是什么?
正确公式:IF(NOT ISNULL(column_name), 1, 0)
HasLabel = computed column (bit)
Label = varchar NULL
以下公式未通过验证,请问我错在哪里? HasLabel的公式为:
Label IS NOT NULL
我想使用一个计算列,如果表中的另一列不为空,它将为true。这个正确的公式是什么?
正确公式:IF(NOT ISNULL(column_name), 1, 0)
HasLabel = computed column (bit)
Label = varchar NULL
Label IS NOT NULL
计算列必须返回一个值,而你只是在进行比较。请尝试使用以下代码:
case when label is null then 0 else 1 end
然而,SQL Server 不会将此视为非空列。要处理这个问题,请将计算更改为:
SQL Server不会理解这个列为非NULL列。为了解决这个问题,请将计算式进行更改:
isnull(case when label IS NULL then 0 else 1 end, 0)
ISNULL(CASE WHEN label IS NULL THEN 0 END, 1)
更加简洁。 - Martin Smithisnull(case when label > 1 then 1 end, 0)
。 - D'Arcy Rittich