我想为SQL Server中的某些条件返回默认值为NULL

时间:2016-07-12 19:42:36

标签: sql sql-server

我在SQL Server中运行以下SQL查询,我需要在不满足条件时将默认值返回为“NULL”。对于某些不符合条件的记录,结果应该显示为NULL但是我得到的空格就是NULL。有人可以帮忙吗?

我的表中有几行不符合条件所以我应该在结果中看到NULL。

{{lookup_dict}}

{% for a in my_list %}
    {{a|my_filter:1}}
{% endfor %}

@register.filter
def my_filter(obj, val):
    # I need to access "lookup_dict" here 
    return ...

1 个答案:

答案 0 :(得分:2)

你的逻辑不正确。这是一种解决方法,考虑到case语句级联 - 也就是说,逻辑选择第一个匹配:

SELECT NAME,
       (CASE WHEN AGE >= 18 AND SEX = 'M' THEN 'Adult Male'
             WHEN AGE < 18 AND SEX = 'M' THEN 'Non-Adult Male'
             WHEN AGE >= 18 AND SEX = 'F' THEN 'Adult Female'
             WHEN AGE < 18 AND SEX = 'F' THEN 'Non-Adult Female'
        END) AS AGE_SEX

注意:ELSE NULL是多余的,因为CASE在没有条件匹配时会返回NULL