大家好,我是新来的,所以我希望我能做到这一点,如果没有,我对此表示歉意。
无论如何,我试图理解SQL中的isNull
运算符。我完全理解isnull
检查第一个参数中的字段是否为Null
值,然后用第二个值替换该Null
的事实。
但是ISNULL
运算符之外的等号在这里(= 'Y'
)是什么意思?
我不知道这个等号将如何应用于我对ISNULL()
的了解。顺便说一下,此isNull
语句位于FROM
语句中,更具体地说是JOIN
。任何帮助或见识将不胜感激。 ISNULL()
的语法如下。提前致谢!
isNull(t.fieldname,'N') = 'Y'
答案 0 :(得分:3)
等同于:
(t.fieldname IS NOT NULL AND t.fieldname = 'Y')
但是,这样做也会简化:
t.fieldname = 'Y'
这将仅过滤具有fieldname
='Y'的记录。假设部分来自WHERE
子句,如果不是JOIN
子句的ON
子句,则可以编写一个简单的case
表达式:
ON (CASE WHEN t.FieldName IS NULL THEN 'N' ELSE t.Fieldname END) = 'Y'
答案 1 :(得分:0)
ISNULL是仅将NULL值替换为指定值的函数,否则返回原始值。
在您的情况下,如果isNull(t.fieldname,'N')
,则N
返回t.fieldname is null
例如,您可以检查以下页面:https://www.w3schools.com/sql/sql_isnull.asp
答案 2 :(得分:0)
这里讨论的情况有点类似。 IsNull with Equal ¿What does this means?
我希望它能为您提供帮助。